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中的属性一一对应起来

 

posted on   luzhouxiaoshuai  阅读(185)  评论(0编辑  收藏  举报

编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示