struts2 参数绑定(Jsp获取参数的方法)

在JSP页面与ACTION之间的桥梁对于程序员来说就是set get方法以及valueStack,既然对方始终获取不了值,那么要么是valueStack有问题(这个框架的东东应该不会错),那就是set get 方法的问题。最后找到使用自动生成set get方法的权限由问题。private 将其更改为public 搞定!!!还是谢谢各位热心帮忙!

看到你这种方式,我想你应该是在用 Struts2 吧,
Struts2 是用的 WebWork 的核心,它的参数全部由 内部拦截器代理 接收及发送,
如果你想在页面接收这一个List 。
步骤:
   在 Action 里面设这个变量: List<String> list = new ArrayList<String>();
     下面Get , Set ,一定要有,供拦截器调用。
   然后你只需要在页面 使用 Struts2 的迭带器标签,
   <s:iterator value="list"><s:property></s:property></s:iterator> // 假设你的是字符
串
   当然楼上说的 jsp 表达式也是可以的,${list} ,如果你是一个用户实体,实体里面有一个名字
   ${list.name}  // 这样输出即可。

综上如下:

action与jsp页面的数据传递需要两步:

1,将action中数据整理打包,放在集合中;

2,将集合中的数据压入action context中,然后再页面通过struts2的ognl表达式配合标签获取到指定的数据;

注意点:

1,数据打包放到集合中时,集合需要先实例化,或者是继承了RequestAware,SessionAware, ApplicationAware接口,这样数据才能放到集合中,否则总是在页面debug的时候显示集合为null;

2,数据压入action需要的就是在将所需要压入的数据对象,经过set get方法,这样才能压入到action context中,其中set方法相当于在action中压入了集合对象,而对于get方法相当于可以例如压入到action context中的对象在jsp页面中通过ognl表达式获取到相关的action context中的值;

1.值存入request
Map 
request = (Map)ActionContext.getContext().get("request");

request.put("users", users);



<s:iterator value="#request.users" id="userInfo">

<s:property value="#userInfo.userName"/>
2.Action属性(跟servlet没有关系)

private List<User> users;
 


<s:iterator value="users" id="userInfo" status="ind">

<s:property value="#userInfo.userName"/>


<s:if test="ind.first">checked</s:if>

猜你喜欢

转载自zw7534313.iteye.com/blog/2222601