在Action中设置属性,并为属性设置get/set方法。传递参数时按照属性的名字赋值即可。如xxx?name=aa
取值用request.getPrameters("属性名“)
public class UserAction {
private String name
private User user
public String userAdd() {
System.out.print(user.getName())
System.out.print(name)
return "success"
}
public String getName() {
return name
}
public void setName(String name) {
this.name = name
}
public User getUser() {
return user
}
public void setUser(User user) {
this.user = user
}
}
注:struts2不会使用单例模式,因此每次的请求都是new 一个新对象。
2、Action 往浏览器界面传递参数:
方式有三种:
第一种:直接给Action 属性(有get/set方法)赋值 ,JSP中用
<s:property value="OGNL表达式"/>取值,注意返回结果类型为forward
例如:
<s:property value="name"/>
<s:property value="user.name"/>
第二种:通过ActionContext传值,在Action中所调用的方法中加入:
ActionContext.getContext().put("key", "value")
JSP中用<s:property value="#key"/>取值
第三种:通过request、session 传值。Action方法中通过取得HttpervletRequest 、HttpSession 和 Map对象设置值,
例如:
ServletActionContext.getRequest().setAttribute("arg0", "value")
ServletActionContext.getRequest().getSession().setAttribute("arg0", "value")
ActionContext.getContext().getSession().put("key", "value")
首先。你的action有问题。list不应该是方法体里的变量,list需要有get set 方法。这样jsp页面会取不到值。改成下面这样(我就不写get set方法了。你自己加):
public class A extends ActionSupport
{
Private String username
Private String password
Private List list
username与password相应的get set方法;
public String execute()
{
list = 这里调用了一个java类,到了一LIST类的
//
//请教这里面应该怎么写才能把在上面得到的list类传到jsp页面上去
//成功转到yes.jsp
}
}
在JSP页面的<@page>标签下面加一个
<@ taglib prefix="s" uri="/struts-tags" >标签包(关于这个标签包的配置和使用建议到网上搜索看看),然后
yes.jsp写法。
<s:iterator value="list" id="item">
<s:property value='item'/>
</s:iterator>
这里面item对应着list里的每个元素。
如果item 是对象(如是People对象且People有一个name属性)则可以写成下这样。
<s:iterator value="list" id="item">
<s:property value='#item.name'/>
</s:iterator>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)