Struts2的几种传参方法

简介: Struts2的几种传参方法

1.直接在对应的action层设置jsp页面内的同名属性

注意要添加getset方法

   public class UserAction extends ActionSupport{
     private UserService userService;
     public void setUserService(UserService userService) {
        this.userService = userService;
     }
     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;
    }
    public String login() throws Exception{
        if(userService.checkUser(username,password)){
          return "success";
        }
        else return "error";
     }
} 
<body>
    <form action="login.action" method="post">
      用户名:<input name="username" type="text" />
      密码:<input name="password" type="password" />
        <input type="submit" value="提交"/>
    </form>

**2.将要接收的参数抽象到一个实体类 通过在action中使用实体类作为成员域 并且改jsp页面的参数为

成员域名.其属性名**

注意要添加实体类成员域的getset方法

public class UserAction extends ActionSupport{
     private UserService userService;
     public void setUserService(UserService userService) {
        this.userService = userService;
     }
    private User user;
    public User getUser() {
        return user;
    }
    public void setUser(User user) {
        this.user = user;
    }
    public String login() throws Exception{
        if(userService.checkUser(user.getUsername(),user.getPassword())){
          return "success";
        }
        else return "error";
     }
} 
 <form action="login.action" method="post">
      用户名:<input name="user.username" type="text" />
      密码:<input name="password" type="user.password" />
        <input type="submit" value="提交"/>
    </form>

3.使用ModelDriver<实体类>接口

基本在第二种上面进行改进了 记得实现接口方法 改返回值为实体类成员域

注意实体类成员域要new 然后在JSP页面直接用属性名 不用user.username直接username

public class UserAction extends ActionSupport implements ModelDriven<User>{
     private UserService userService; 
     public void setUserService(UserService userService) {
        this.userService = userService;
     }
    private User user=new User();
    public String login() throws Exception{
        if(userService.checkUser(user.getUsername(),user.getPassword())){
          return "success";
        }
        else return "error";
     }
    @Override
    public User getModel() {
        return user;
    }
} 
  <form action="login.action" method="post">
      用户名:<input name="getUsername()" type="text" />
      密码:<input name="password" type="getPassword()" />
        <input type="submit" value="提交"/>
    </form>
相关文章
|
4月前
|
机器学习/深度学习 开发框架 数据可视化
B站开源SOTA动画视频生成模型 Index-AniSora!
B站升级动画视频生成模型Index-AniSora技术并开源,支持番剧、国创、漫改动画、VTuber、动画PV、鬼畜动画等多种二次元风格视频镜头一键生成!
499 32
|
5月前
|
人工智能 算法
要创新,怎少得了智能体?新鲜出炉的TRIZ发明原则AI助手,你不来试试?
TRIZ发明原则AI助手是一款专注于技术创新领域的智能工具,由法思诺创新团队开发。它结合了TRIZ理论中的矛盾矩阵和发明原则,旨在帮助用户聚焦具体技术问题并快速生成大量有针对性的创意解决方案。相比通用AI,该助手在专业性、准确性和实用性上更具优势,尤其适合解决技术和产品研发中的复杂问题。通过将常规问题转化为TRIZ句型、匹配工程参数、查询矛盾矩阵及提供创意思路,助手实现了从问题定义到解决方案的全流程支持。尽管仍存在一些局限性(如偶尔输出不稳定或不够专业),但通过与研发人员的协作,其潜力可得到最大化发挥。目前,团队邀请用户试用并反馈,以持续优化这一创新工具。
229 0
|
6月前
|
Rust 物联网 数据处理
Rust +时序数据库 TDengine:打造高性能时序数据处理利器
TDengine 是一款专为物联网、车联网、工业互联网等时序数据场景优化设计的开源时序数据库,支持高并发写入、高效查询及流式计算,通过“一个数据采集点一张表”与“超级表”的概念显著提升性能。 Rust 作为一门系统级编程语言,近年来在数据库、嵌入式系统、分布式服务等领域迅速崛起,以其内存安全、高性能著称,与 TDengine 的高效特性天然契合,适合构建高可靠、高性能的数据处理系统。
228 2
|
JavaScript 前端开发 安全
怎样用Node.js搭建web服务器
本文探讨了如何使用Node.js构建高效的HTTP服务器。首先,介绍了HTTP常见请求方法,如GET、POST、PUT等。接着,展示了如何使用Node.js的`http`模块创建服务器,并根据请求方法进行不同处理,如判断GET和POST请求,以及获取GET请求参数和处理POST请求数据。最后,讨论了服务器代码的模块化管理,包括路由管理和业务逻辑拆分,以提升代码的维护性和扩展性。通过本文,读者可以掌握基础的Node.js服务器开发及模块化设计技巧。
264 0
|
Java API Spring
Spring Boot 中的 AOP 处理
对 Spring Boot 中的切面 AOP 做了详细的讲解,主要介绍了 Spring Boot 中 AOP 的引入,常用注解的使用,参数的使用,以及常用 api 的介绍。AOP 在实际项目中很有用,对切面方法执行前后都可以根据具体的业务,做相应的预处理或者增强处理,同时也可以用作异常捕获处理,可以根据具体业务场景,合理去使用 AOP。
|
11月前
|
SQL 监控 关系型数据库
多个表同时更新的SQL技巧与方法
在数据库管理中,有时需要同时对多个表进行更新操作,以满足复杂的业务需求或数据一致性要求
1161 0
|
Java Maven Apache
Struts 2 配置不再难!跟着这篇详解从零搭建开发环境
【8月更文挑战第31天】要搭建Struts 2开发环境,需先安装JDK,然后下载并解压Struts 2二进制包,将其核心库`struts2-core`添加到项目类路径中。使用Maven或Gradle时,可在配置文件中添加依赖。接着,在`web.xml`中配置Struts 2过滤器及其映射。`struts.xml`通常位于`src/main/resources`目录下,用于定义动作映射和拦截器等核心配置。最后,通过配置类路径下的`log4j.properties`文件,可以设置Struts 2的日志记录级别及输出方式。完成以上步骤后,即可开始基于Struts 2框架进行Web应用开发。
401 0
阿里云镜像公共仓库使用
这篇文章介绍了如何使用阿里云镜像公共仓库,包括登录管理界面、创建命名空间、推送和拉取镜像的详细步骤。
4335 4
阿里云镜像公共仓库使用
|
存储 人工智能 OLAP
深度|大模型时代下,基于湖仓一体的数据智能新范式
本次文根据峰会演讲内容整理:分享在大模型时代基于湖仓一体的数据产品演进,以及我们观察到的一些智能开发相关的新范式。