index.jsp<form action="login.action" method="post">
<input type="text" name="name">
<input type="submit">
</form>loginActionpublic class loginAction extends ActionSupport { private static final long serialVersionUID = 1L;
@Override
public String execute() throws Exception {
HttpServletRequest request=ServletActionContext.getRequest();
String name=request.getParameter("name");
User user=new User();
user.setName(name);
request.setAttribute("user",user);
return SUCCESS;
}
}cc.jsp<body>${user.name}
</body>User.java
public class User {
private String name;public String getName() {
return name;
}public void setName(String name) {
this.name = name;
}}loginAction里request.setAttribute("user",user);
到jsp页面里怎么不需要get就可以取到name值, 用${user.name},这是struts2的特点吗?什么特点?
HttpServletRequest request=ServletActionContext.getRequest();
String name=request.getParameter("name");
User user=new User();
user.setName(name);
request.setAttribute("user",user);
return SUCCESS;
}
这个方法可以这么写
public String execute() throws Exception {
this.user.setName(this.name);
return SUCCESS;
}
前提是你得写一个私有的user 并且生成get set方法
写一个私有的String类型的变量name 生成get set方法、、、
前台直接${user.name}可以取值。
顺便说一下LZ能写struts2真幸福我现在用spring mvc 太操蛋了跟struts2比起来太让人DT了。
Struts1不就已经整合了JSTL了嘛...
<s:property value="#request.user.name"/>
表达示的requestScope.user等价于request.getAttribute("user");
不是因为加入了struts2框架才能用!
另外,LZ不需要用setAttribute("user",user),你把User类,在Action类中型明就行了!再让你那个Action实现ModelDriven接口,这个接口是个泛型接口,你在接口中指定你的JavaBean;你创建User那个类,就是个model;然后实现接口中的getModel()方法;struts2会帮你做好一切的!