今天这个东西纠结了我一天,上午很简单就解决了,也没注意,下午在另一个页面就是不通。改来改去,终于知道问题所在,那就是全局变量的问题。下面来结合网上资料详细解决一下。
首先,想要JSP从Action中获取值就必须有下面这个标签
<s:property value="OGNL表达式"/>当然还得在JSP页面头部引入struts2的标签库(这个标签库可以好好学学)
<%@ taglib prefix="s" uri="/struts-tags"%>
每次请求action转发回来后,当前页面会有一个valueStack,action里的全部信息都保存在里面,比如你action里有个字段username(提供的有get方法)
则你在<s:property value="username"/>就能直接取到值。
如果是对象ognl还可以支持导航<s:property value="user.username"/>
同时当前页面还保存的有ActionContext,跟valueStack一样,也可以直接取值,但是前面要加个#号以区别。
request、application对象都在actionContext里面,可以这么取requst里的值
<s:property value="#request.username"/>
其次action从表单取值,一定要是表单,action中的全局变量的get方法可以直接从form中取得标签name和变量相同的值。