`
pwpw1218
  • 浏览: 9233 次
社区版块
存档分类
最新评论

Struts2学习笔记之参数的传递与获取(四)

阅读更多

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 学习重点知识点总结 #### 一、Struts2 概念与架构 **1.1 Struts2 简介** - **定义**:Struts2 是 Apache 组织提供的一个基于 MVC 架构模式的开源 Web 应用框架。 - **核心**:Struts2 的核心其实是 ...

    Struts2学习笔记

    本学习笔记将深入探讨Struts2的核心概念、架构以及实际应用。 一、Struts2框架概述 1. 架构:Struts2基于Model-View-Controller(MVC)设计模式,将业务逻辑、数据处理和用户界面分离,提高了代码的可读性和可维护...

    牧紫小岩的Struts2学习笔记

    #### Struts2与Struts1对比 在**牧紫小岩的Struts2学习笔记**中,提到了Struts1和Struts2在实例化Action上的关键差异。Struts1在启动时创建Action实例,并在整个应用程序运行期间复用该实例,这意味着所有用户请求...

    struts 2 学习笔记

    在Struts2中,学习笔记通常会涵盖以下几个关键概念: 1. **源代码查看和Javadoc**:开发者可以通过查看源代码来理解Struts2的工作原理,而Javadoc则提供了API文档,帮助理解类和方法的功能。 2. **包(Package)和...

    struts2学习笔记

    在深入探讨Struts2的学习笔记之前,先来理解它的核心概念。 **1. Struts2依赖的JAR包** Struts2的运行离不开一系列的依赖库,包括: - `struts2-core-2.1.6.jar`:这是Struts2的核心库,包含了Struts2框架的主要...

    struts学习笔记

    ### Struts学习笔记详解 #### 一、Struts框架概览与编码设置 在学习Struts框架时,首要关注的是其编码配置。如代码片段所示,`struts.i18n.encoding`常量被设置为`UTF-8`,这确保了国际化(I18N)资源文件的正确...

    Struts2学习笔记(5)-参数传递方法

    在Struts2框架中,参数传递是连接前端页面与后台Action类的重要环节,使得用户交互的数据能够被正确处理。在本文中,我们将深入探讨几种在Struts2中进行参数传递的方法。 1. **Action中直接参数法** 这是最基本的...

    Struts2_学习笔记

    本学习笔记将深入探讨Struts2的核心概念、工作原理以及如何在实际开发中有效利用它。 **1. MVC模式与Struts2** MVC模式是一种软件设计模式,它将业务逻辑(Model)、用户界面(View)和数据控制(Controller)分离...

    struts2培训笔记

    ### Struts2培训笔记 #### 一、Struts2简介 **MVC框架**:Struts2是一个基于Java的企业级Web应用开发框架,遵循MVC(Model-View-Controller)设计模式。 - **M(Model)**:业务逻辑处理部分,通常指与数据库交互...

    struts学习笔记(四)

    本篇“Struts学习笔记(四)”着重于深入理解Struts的工作原理和实际应用,通过阅读提供的Struts.pdf文档,我们可以获取以下几个关键知识点: 1. **MVC模式**:在Struts框架中,MVC模式被用于分离业务逻辑、数据模型...

    struts学习用笔记

    这篇"struts学习用笔记"涵盖了以下几个重要的知识点: 1. **MVC设计模式**:MVC是一种将业务逻辑、数据和用户界面分离的设计模式。在Struts中,模型负责业务处理,视图负责数据显示,控制器接收用户请求并调用模型...

    [摘]Struts 学习笔记之ActionForm

    博客文章"Struts学习笔记之ActionForm - xiaodaoxiaodao——蓝小刀的自言自语 - BlogJava.mht"可能包含更深入的实践示例和经验分享,包括如何处理ActionForm的生命周期、动态Form Beans、国际化等话题。通过阅读这篇...

    struts2的学习笔记+测试源代码

    总结,本学习笔记与源代码着重讲解了在Struts2框架下,如何操作`request`、`session`、`ServletContext`和`response`对象,这四者构成了Web应用中数据传递的核心路径。通过对它们的熟练运用,开发者能够更好地控制和...

    赵栋struts2 笔记

    赵栋的Struts2笔记主要涵盖了2013年的相关知识,以下是根据笔记内容提炼出的一些关键知识点: 1. **URL与Action方法绑定**: 在Struts2中,通过URL直接调用Action类的方法是可能的。如果在URL中附加"!"后跟方法名...

Global site tag (gtag.js) - Google Analytics