Struts2学习笔记之参数的传递与获取(四)
基于上一篇博客做了一下的修改。
Struts2中传递参数和方法
基本属性:
package com.mscncn.struts.ch01.web; import com.mscncn.struts.ch01.entity.User; public class HelloWorldAction { private String realName; private User user; public String execute(){ System.out.println("realName:"+realName+","+user); return "ok"; } public String getRealName() { System.out.println("获取realName"); return realName; } public void setRealName(String realName) { System.out.println("注入realName"); this.realName = realName; } public User getUser() { System.out.println("获取User"); return user; } public void setUser(User user) { System.out.println("注入User"); this.user = user; } }
上面代码中得realName 是HelloWorldAction中的一个普通属性,传入参数,就需要我们为realName提供一个setter方法:
public void setUser(User user) { System.out.println("注入User"); this.user = user; }
那么realName 可以直接接收页面表单元素name=realName 的value值。
域类型:
上面代码的user就是一个域模型,那么 我们想要给与模型传入值,也需要对应的setter方法
注意: 传入值需要setter方法,获取值需要getter方法
package com.mscncn.struts.ch01.entity; public class User { private String userName; private String password; public String getUserName() { System.out.println("获取user.userName"); return userName; } public void setUserName(String userName) { System.out.println("设置user.userName"); this.userName = userName; } public String getPassword() { System.out.println("获取user.password"); return password; } public void setPassword(String password) { System.out.println("设置user.password"); this.password = password; } @Override public String toString() { return "User [userName=" + userName + ", password=" + password + "]"; } }
如果传递给user模型,那么我们需要在form中的表单元素name=user.属性名 给user模型对应的属性设置值(在action中给user模型提供getter,setter方法)
测试:
1. 发送请求: http://localhost:8080/struts-ch01/
2. 进入index.jsp
<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" %> <!DOCTYPE> <html> <body> <form action="${pageContext.request.contextPath }/hello/sayHello" method="post"> 真实姓名:<input name="realName" /></br> 账号:<input name="user.userName" /></br> 密码<input type="password" name="user.password" /></br> <input type="submit"/> </form> </body> </html>
3. 填写表达,提交表单
4. 提交给action
package com.mscncn.struts.ch01.web; import com.mscncn.struts.ch01.entity.User; public class HelloWorldAction { private String realName; private User user; public String execute(){ System.out.println("realName:"+realName+","+user); return "ok"; } public String getRealName() { System.out.println("获取realName"); return realName; } public void setRealName(String realName) { System.out.println("注入realName"); this.realName = realName; } public User getUser() { System.out.println("获取User"); return user; } public void setUser(User user) { System.out.println("注入User"); this.user = user; } }
struts.xml配置:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" "http://struts.apache.org/dtds/struts-2.1.7.dtd"> <struts> <!-- 配置需要体现2点内容 1. 请求对应哪个Action类及其方法 2. 请求转发到哪个页面 --> <package name="ch01" namespace="/hello" extends="struts-default"> <!-- 请求的url与 两个配置参数相关 1. package 的namespace的参数 2. action 的name 以此为例 http://localhost:8080/struts-ch01/hello/sayHello package的namespace 是项目后面的路径 --> <action name="sayHello" class="com.mscncn.struts.ch01.web.HelloWorldAction" method="execute"> <result name="ok"> /hello.jsp </result> </action> </package> </struts>
5. 处理结束后,转发给result对应的视图hello.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false"%> <!DOCTYPE> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <h1>Hello Struts2</h1> 真实姓名:${realName }<br/> 账号:${user.userName }<br/> 密码:${user.password }<br/> </body> </html>
注意,在Action中得属性我们可以直接在页面是使用,如果属性是基本类型可以直接使用el表达式 ${realName}来获取Action中realName的值,如果想要获取user中的属性
可以使用${user.属性名}来获取user模型对象对应的属性值。
相关推荐
### Struts2 学习重点知识点总结 #### 一、Struts2 概念与架构 **1.1 Struts2 简介** - **定义**:Struts2 是 Apache 组织提供的一个基于 MVC 架构模式的开源 Web 应用框架。 - **核心**:Struts2 的核心其实是 ...
本学习笔记将深入探讨Struts2的核心概念、架构以及实际应用。 一、Struts2框架概述 1. 架构:Struts2基于Model-View-Controller(MVC)设计模式,将业务逻辑、数据处理和用户界面分离,提高了代码的可读性和可维护...
在Struts2中,学习笔记通常会涵盖以下几个关键概念: 1. **源代码查看和Javadoc**:开发者可以通过查看源代码来理解Struts2的工作原理,而Javadoc则提供了API文档,帮助理解类和方法的功能。 2. **包(Package)和...
#### Struts2与Struts1对比 在**牧紫小岩的Struts2学习笔记**中,提到了Struts1和Struts2在实例化Action上的关键差异。Struts1在启动时创建Action实例,并在整个应用程序运行期间复用该实例,这意味着所有用户请求...
在深入探讨Struts2的学习笔记之前,先来理解它的核心概念。 **1. Struts2依赖的JAR包** Struts2的运行离不开一系列的依赖库,包括: - `struts2-core-2.1.6.jar`:这是Struts2的核心库,包含了Struts2框架的主要...
### Struts学习笔记详解 #### 一、Struts框架概览与编码设置 在学习Struts框架时,首要关注的是其编码配置。如代码片段所示,`struts.i18n.encoding`常量被设置为`UTF-8`,这确保了国际化(I18N)资源文件的正确...
在Struts2框架中,参数传递是连接前端页面与后台Action类的重要环节,使得用户交互的数据能够被正确处理。在本文中,我们将深入探讨几种在Struts2中进行参数传递的方法。 1. **Action中直接参数法** 这是最基本的...
本学习笔记将深入探讨Struts2的核心概念、工作原理以及如何在实际开发中有效利用它。 **1. MVC模式与Struts2** MVC模式是一种软件设计模式,它将业务逻辑(Model)、用户界面(View)和数据控制(Controller)分离...
### Struts2.1 学习笔记知识点梳理 #### 一、Struts.xml中的Namespace概念与作用 **知识点概述:** - **Namespace介绍**:在Struts2框架中,`namespace`是一个重要的概念,用于组织和管理不同的Action,提供了一种...
Struts2是一个流行的Java Web应用程序框架,用于构建...以上就是Struts2课程学习笔记中的主要知识点,涵盖了从基础配置到高级特性的多个方面。理解和掌握这些内容,有助于深入学习和使用Struts2框架进行Java Web开发。
### Struts2培训笔记 #### 一、Struts2简介 **MVC框架**:Struts2是一个基于Java的企业级Web应用开发框架,遵循MVC(Model-View-Controller)设计模式。 - **M(Model)**:业务逻辑处理部分,通常指与数据库交互...
本篇“Struts学习笔记(四)”着重于深入理解Struts的工作原理和实际应用,通过阅读提供的Struts.pdf文档,我们可以获取以下几个关键知识点: 1. **MVC模式**:在Struts框架中,MVC模式被用于分离业务逻辑、数据模型...
这篇"struts学习用笔记"涵盖了以下几个重要的知识点: 1. **MVC设计模式**:MVC是一种将业务逻辑、数据和用户界面分离的设计模式。在Struts中,模型负责业务处理,视图负责数据显示,控制器接收用户请求并调用模型...
博客文章"Struts学习笔记之ActionForm - xiaodaoxiaodao——蓝小刀的自言自语 - BlogJava.mht"可能包含更深入的实践示例和经验分享,包括如何处理ActionForm的生命周期、动态Form Beans、国际化等话题。通过阅读这篇...
总结,本学习笔记与源代码着重讲解了在Struts2框架下,如何操作`request`、`session`、`ServletContext`和`response`对象,这四者构成了Web应用中数据传递的核心路径。通过对它们的熟练运用,开发者能够更好地控制和...
赵栋的Struts2笔记主要涵盖了2013年的相关知识,以下是根据笔记内容提炼出的一些关键知识点: 1. **URL与Action方法绑定**: 在Struts2中,通过URL直接调用Action类的方法是可能的。如果在URL中附加"!"后跟方法名...