数据传递---前台传数据到后台action的三种方法

模型驱动:
1.让action实现ModelDriven接口
2.重写getModel()方法
代码如下(配置文件什么的就不写了):

index.jsp:
···
<%@ page language=”java” contentType=”text/html; charset=UTF-8”
pageEncoding=”UTF-8”%>
<%@ taglib prefix=”s” uri=”/struts-tags”%>






</form>



···
User.java:

package com.gpnu.user;

public class User {
    private String username;
    private String password;

    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }

}

UserAction:

package com.gpnu.user;

import com.opensymphony.xwork2.ModelDriven;

public class UserAction implements ModelDriven<User>{
    private User user;

    @Override
    public User getModel() {
        if(user == null) {
            user = new User();
        }
        return user;
    }

    public String demo() {
        System.out.println(user.getUsername());
        System.out.println(user.getPassword());
        return "demoSuccess";
    }
}

属性驱动:将表单项的name直接设置为要传递的参数名(如username和password),将这些参数作为属性 在action中提供其setter方法即可。代码如下

index.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
  <body>
    <form action="${pageContext.request.contextPath }/user_demo">
        <input type="text" name="username" value="root">
        <input type="text" name="password" value="123">
        <input type="submit">

    </form>

  </body>
</html>

UserAction.java:

package com.gpnu.user;

import com.opensymphony.xwork2.ModelDriven;

public class UserAction {
    private String username;
    private String password;

    public void setUsername(String username) {
        this.username = username;
    }

    public void setPassword(String password) {
        this.password = password;
    }



    public String demo() {
        System.out.println(username);
        System.out.println(password);
        return "demoSuccess";
    }
}

基于ongl方式传递参数:有种特别的情况 待续————————

猜你喜欢

转载自blog.csdn.net/qq_35254628/article/details/79553988
今日推荐