如何在struts中访问jsp标签?
例如:
<s:select name="country" list="<%=countryList%>" headerKey="0" headerValue="Country"
label="Select your country" required="true"/>
例外:
消息:/jsp/index.jsp(35,2)根据TLD或属性
标记文件中的指令,属性列表不接受任何表达式。
countryList是一个ArrayList。
最佳答案
好吧,该异常清楚地表明了原因,因为S2标签不允许在其中包含该表达式。
除了Tag之外,需要List / ArrayList或任何集合列表作为数据源,并且内置的ONGL机制将为您完成其余工作。
您可以通过一种干净的方法来实现此目的,在操作类中创建一个名称为countryList
的属性,该属性的数据类型应为List / Map,并为此属性提供一个吸气剂和设置器。在操作类中向列表中填充所需的数据。
动作班
public class MyAction extends ActionSupport{
private List<String> countryList;
// getter and setter for countryList
public String execute() throws Exception{
countryList=new ArrayList<String>();
// Add values to list
return SUCCESS;
}
}
现在,在您的JSP中,您需要执行以下操作
<s:select name="country" list="countryList" headerKey="0" headerValue="Country"
label="Select your country" required="true"/>
因此,当OGNL将找到
list="countryList"
作为数据源时,它将在您的操作类中查找名为getCountryList()的方法,并使用该数据填充select标签。希望这能使您清楚地知道它是如何工作的。有关详细信息,请参阅正式文件
select tag