- 先给上struts.xml代码:
- <?xml version="1.0" encoding="UTF-8" ?>
- <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration
- 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
- <struts>
- <package name="login" namespace="/user" extends="struts-default">
- <action name="*_*" class="com.wepull.struts2.action.{1}Action" method="{2}">
- <result name="success">
- {1}_{2}.jsp
- </result>
- <result name="input">
- User_toLogin.jsp
- </result>
- </action>
- </package>
- </struts>
第一种传參方式:
- import com.opensymphony.xwork2.ActionSupport;
- /**
- * 方式一:直接在action中写属性。然后写set、get方法
- * 1.在Action里加入属性,属性名要相应jsp上的属性名
- * 2.加入相应的set方法
- *
- */
- public class UserAction extends ActionSupport {
- private String name;
- private String pass;
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getPass() {
- return pass;
- }
- public void setPass(String pass) {
- this.pass = pass;
- }
- public String doLogin(){
- String forward="input";
- //System.out.println(name+" "+pass);
- if("wepull".equalsIgnoreCase(name)&&"123".equalsIgnoreCase(pass)){
- return SUCCESS; //登录成功,返回成功页面
- }else{
- return forward; //登录失败,返回又一次登录
- }
- }
- public String toLogin(){
- return SUCCESS; //进入登录页面
- }
- }
------------------------------------------------------------------------------------------------------------------------------
User_toLogin.jsp 页面:
- <form action="user/User_doLogin">
- <table>
- <tr>
- <td>
- username
- </td>
- <td>
- <input type="text" name="name">
- </td>
- <td>
- </td>
- </tr>
- <tr>
- <td>
- 密 码
- </td>
- <td>
- <input type="text" name="pass">
- </td>
- <td>
- </td>
- </tr>
- <tr>
- <td>
- <input type="submit" value="sure">
- </td>
- <td>
- <input type="reset" value="reset">
- </td>
- <td>
- </td>
- </tr>
- </table>
- </form>
##########################################################################
另外一种传參方式:
- import com.opensymphony.xwork2.ActionSupport;
- /**
- * 方式二:把属性封装到dto中,传值时以dto名字.当中属性
- * 1.在Action里加入属性,属性名要相应jsp上的属性名
- * 2.加入相应的set方法
- *
- */
- public class UserAction extends ActionSupport {
- private UserDTO user;
- public UserDTO getUser() {
- return user;
- }
- public void setUser(UserDTO user) {
- this.user = user;
- }
- public String doLogin(){
- String forward="input";
- //System.out.println(user.getName()+" "+user.getPass());
- if("wepull".equalsIgnoreCase(user.getName())&&"123".equalsIgnoreCase(user.getPass())){
- return SUCCESS;
- }else{
- return forward;
- }
- }
- public String toLogin(){
- return SUCCESS;
- }
- }
- ------------------------------------------------------------------------------------------------------------------------------
- UserDTO.java代码
- public class UserDTO {
- private String id;
- private String name;
- private String pass;
- public String getId() {
- return id;
- }
- public void setId(String id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getPass() {
- return pass;
- }
- public void setPass(String pass) {
- this.pass = pass;
- }
- }
------------------------------------------------------------------------------------------------------------------------------
User_toLogin.jsp 页面:
- <form action="user/User_doLogin">
- <table>
- <tr>
- <td>
- username
- </td>
- <td>
- <input type="text" name="user.name">
- </td>
- <td>
- </td>
- </tr>
- <tr>
- <td>
- 密 码
- </td>
- <td>
- <input type="text" name="user.pass">
- </td>
- <td>
- </td>
- </tr>
- <tr>
- <td>
- <input type="submit" value="sure">
- </td>
- <td>
- <input type="reset" value="reset">
- </td>
- <td>
- </td>
- </tr>
- </table>
- </form>
##########################################################################
第三种传參方式:
- import com.opensymphony.xwork2.ActionSupport;
- import com.opensymphony.xwork2.ModelDriven;
- /**
- * 方式三:实现ModelDriven
- * 实现ModelDriven接口
- *
- */
- public class UserAction extends ActionSupport implements ModelDriven<UserDTO>{
- private UserDTO user;
- public UserDTO getUser() {
- return user;
- }
- public void setUser(UserDTO user) {
- this.user = user;
- }
- public String doLogin(){
- String forward="input";
- //System.out.println(user.getName()+" "+user.getPass());
- if("wepull".equalsIgnoreCase(user.getName())&&"123".equalsIgnoreCase(user.getPass())){
- return SUCCESS;
- }else{
- return forward;
- }
- }
- public String toLogin(){
- return SUCCESS;
- }
- public UserDTO getModel() {
- if(user==null){
- user=new UserDTO();
- }
- return user;
- }
- }
------------------------------------------------------------------------------------------------------------------------------
User_toLogin.jsp 页面:
- <form action="user/User_doLogin">
- <table>
- <tr>
- <td>
- username
- </td>
- <td>
- <input type="text" name="name">
- </td>
- <td>
- </td>
- </tr>
- <tr>
- <td>
- 密 码
- </td>
- <td>
- <input type="text" name="pass">
- </td>
- <td>
- </td>
- </tr>
- <tr>
- <td>
- <input type="submit" value="sure">
- </td>
- <td>
- <input type="reset" value="reset">
- </td>
- <td>
- </td>
- </tr>
- </table>
- </form>
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
另外, 在介绍一种通过 HttpServletRequest request 传參方式
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpSession;
- import org.apache.struts2.ServletActionContext;
- import com.opensymphony.xwork2.ActionSupport;
- import com.opensymphony.xwork2.ModelDriven;
- /**
- * 获取request參数的方式
- *HttpServletRequest request 传參方式
- *
- */
- public class UserAction extends ActionSupport{
- public String doLogin(){
- //获取request对象
- HttpServletRequest request=ServletActionContext.getRequest();
- //获取session对象
- //HttpSession session=request.getSession();
- String name=request.getParameter("name");
- String pass=request.getParameter("pass");
- String forward="input";
- if("wepull".equalsIgnoreCase(name)&&"123".equalsIgnoreCase(pass)){
- return SUCCESS;
- }else{
- return forward;
- }
- }
- public String toLogin(){
- return SUCCESS;
- }
- }
在开发中最经常使用的就是 DTO 和实现 ModelDriven 两种。要掌握哟!~
来源: http://www.bubuko.com/infodetail-2144604.html