如何在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

09-11 14:47