2012.09.10 02:52更新:这里有一个更麻烦的例子,是自己刚学struts2时写的,使用了ModelDriven接口,感兴趣的可以下载下来参考一下。
---分割线---
在Servlet中,参数传递依靠在request, session, application等对象中插件参数,或者依靠jsp:param,比较麻烦。在struts2中,只需在Java类中设置getXXX(), setXXX()方法就可以在Java类中与显示页面间便捷的传递参数了,如果实现ModelDriven接口,则可让传递的参数更加规范。
例:有一登录页面为login.jsp,body内容如下:
在struts.xml中配置Action如下:
main.jsp
error.jsp
在Imp类中有String型变量name, pwd,以及setXXX()方法以便获得从网页传递过来的参数
public void setName(String name){
this.name = name;
}
public void setPwd(String pwd){
this.pwd = pwd;
}
这样就可以在login_do这个Action调用的方法login中使用传递的值了。为简便,设定login()如下:
public String login(){
System.out.println(name);
System.out.println(pwd);
return "success";
}
当用户在login.jsp中点击“登录”按钮提交表单后,便会在后台console中打印出传递过来的name, pwd两个参数值。然后服务器端将main.jsp页面响应给用户,如果在main.jsp中继续使用name, pwd的值,则需要在Imp类中写入getXXX()方法,格式如下:
public String getName(){
return this.name;
}
public String setPwd(){
return this.pwd;
}
设定main.jsp主体内容如下:
用户名:
密码:
便可以显示出白提交的两个参数啦!
实际效果:
1 登录页面
2 点击登录提交表单后,控制台输出
3 Java类返回success跳转到main.jsp并呈现给用户页面