zoukankan      html  css  js  c++  java
  • 刚開始学习的人非常有用:struts2中将jsp数据传到action的几种方式

    先给上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两种。要掌握哟!~


  • 相关阅读:
    Leetcode 647 回文子串
    计算机专业课程——答案搜集
    Centos搭建go环境以及go入门
    android studio实现圆角的button
    关于区块链的认识和看法
    LeetCode 96. 不同的二叉搜索树
    LeetCode 120. Triangle (三角形最小路径和)详解
    LeetCode 64最小路径和
    微信发起摄像头接口请求 上传头像 图片
    Vue解决项目白屏以及(反向代理)
  • 原文地址:https://www.cnblogs.com/slgkaifa/p/7095896.html
Copyright © 2011-2022 走看看