5、struct2的获得jsp参数的第三种方式

在前面已经讲解了通过在action中直接通过jsp的参数和ModelDiver的方式获得浏览器传递的参数,下面我们介绍第三种方式,也是在项目开发中推荐的方式

action不需要在实现ModelDriver接口

我们来看下程序的代码

建立Bean对象

package com.weiyuan.test;

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;
    }
}

然后在我们的action对象中提供一个bean对象的实体,需要实现bean对象的get和set方法

代码如下

package com.weiyuan.test;

import com.opensymphony.xwork2.ModelDriven;

/**
 * struct2的action可以不继承任何框架的接口
 * 1、默认调用的是execute()方法
 * */
public class LoginAction  {

     private User user;
     
     
    
    public User getUser() {
        return user;
    }



    public void setUser(User user) {
        this.user = user;
    }



    public String execute() throws Exception{
        System.out.println("execute is called");
        if("admin".equals(user.getUsername())&&"admin".equals(user.getPassword())){
            return "success";
        }else{
            return "error";
        }
    }



}

接下来还需要修改jsp对象的代码

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
    <form action="login.action">
      用户:<input type="text" name= "user.username"><br>
     密码 :<input type="text" name="user.password"><br>
   <input type="submit" value=" 登陆">     
    </form>
</body>
</html>

其中: name= "user.username">中的user必须和action中的    private User user一一对应,username必须和实体对象User中的属性一一对应起来

原文地址:https://www.cnblogs.com/kebibuluan/p/8028157.html