Struts2中继承了Webwork的强大OGNL,下面是一个例子:
index.jsp:提交列表
<s:form action="ognl">
<s:textfield name="list[0]" label="list[0]="/>
<s:textfield name="list[1]" label="list[1]="/>
<s:textfield name="list[2]" label="list[2]="/>
<s:textfield name="map['name']" label="map['name']="/>
<s:textfield name="map['pass']" label="map['pass']="/>
<s:submit></s:submit>
</s:form>
其中list[0],list[1],list[2]对应被添加到Action的list中!
Action:
package actions;
import com.opensymphony.xwork2.ActionSupport;
import java.util.*;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.interceptor.ServletRequestAware;
public class OGNLValue extends ActionSupport implements ServletRequestAware
{
List list;
Map<String,String> map;
String var;
ServletRequest req=null;
public void setVar(String v)
{
var = v;
}
public String getVar()
{
return var;
}
public void setList(List l)
{
list = l;
}
public List getList()
{
return list;
}
public void setMap(Map m)
{
map = m;
}
public Map getMap()
{
return map;
}
public String execute()
{
req.setAttribute("list", list);
req.setAttribute("map", map);
return "OK";
}
public void setServletRequest(HttpServletRequest arg0)
{
req = arg0;
}
}
show.jsp
<s:property value="#request.list[0]"/>
<s:property value="#request.map['name']"/>
struts.xml
<action name="ognl" <result name="OK">/show.jsp</result>
<result name="ERROR">/jsp/error.jsp</result>
</action>