- 浏览: 203592 次
- 性别:
- 来自: 合肥
文章分类
最新评论
-
materigirl:
实例化的引用变量没有调用toString()方法当然没用了。 ...
Java 泛型之简单类型的多参数类型 -
zds420:
xiaojianhx 写道如果action分散在不同的包里面要 ...
Struts2 Action 通配符 -
xiaojianhx:
如果action分散在不同的包里面要如何配置呢?如:
com. ...
Struts2 Action 通配符 -
zds420:
Zhang987526341 写道求lz 详细说说,我复制您的 ...
COOKIE IP地址限制投票次数 -
Zhang987526341:
求lz 详细说说,我复制您的代码后,要怎么改啊 。。初学者,求 ...
COOKIE IP地址限制投票次数
Struts2 Action接受参数
STEP 1:
index.jsp页面内容
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> struts2中的路径问题 struts2的路径 1) 在struts2中的路径问题是根据action的路径而不是jsp路径确定,所以尽量不要使用相对路径。 2) 可以使用redirect方式解决,但是refirect方式并非必要。 3) 解决办法非常简单,统一使用绝对路径.(在jsp中使用request.getContextRoot()方式来获取webapp的路径) 和使用MyEclipse经常使用的,指定basePath路径。 <a href="/action/test01.action">路径问题->path路径下面</a> <br/> struts2中接受参数有三种方式; 1:属性接受参数 <a href="/param/param_action!query.action?user_name=zhudansheng&book_name=struts2学习实战&age=25&test_name=测试用户名">属性接受参数</a> 2:域模型(就是实体类)此方法最常用 <a href="/param/domain_action!modify.action?user_model.user_name=zhudanshengtest&user_model.book_name=struts2学习实战好呀&user_model.age=25&user_model.test_name1=测试用户名shima">域模型(就是实体类)接受参数</a> 3:驱动模型接口 <a href="/param/param_action!edit.action?user_name=zhudanshengtest&book_name=struts2学习实战好呀&age=25&test_name=测试用户名shima">域模型(就是实体类)接受参数</a> <br/> 默认ACTON的执行 <a href="/default_action/">默认ACTON的执行</a> </body> </html>
STEP2:
struts.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="i18n" value="utf-8"></constant> <!-- <constant name="struts.enable.DynamicMethodInvocation" value="false" /> <constant name="struts.devMode" value="false" /> <package name="default" namespace="/" extends="struts-default"> <default-action-ref name="index" /> <global-results> <result name="error">/error.jsp</result> </global-results> <global-exception-mappings> <exception-mapping exception="java.lang.Exception" result="error"/> </global-exception-mappings> <action name="index"> <result type="redirectAction"> <param name="actionName">HelloWorld</param> <param name="namespace">/example</param> </result> </action> </package> <include file="example.xml"/> --> <!-- Add packages here --> <!-- <package name="default" namespace="/" extends="struts-default"> <action name="helloworld"> <result>/helloworld.jsp</result> </action> </package> --> <!-- 使用Action 的三种方式,在企业最常用的是继承ActionSupport类 --> <package name="default" namespace="/action" extends="struts-default"> <action name="test01" class="com.demo.action.DemoAction01"> <result name="success">/path/path01.jsp</result> </action> </package> <package name="param" namespace="/param" extends="struts-default"> <action name="param_action" class="com.demo.action.ParamActionDemo01"> <result name="success">/path/path01.jsp</result> </action> <action name="domain_action" class="com.demo.action.ParamDomainModelActionDemo01"> <result name="success">/path/path01.jsp</result> </action> </package> <!-- 默认ACTION的执行 --> <package name="def" namespace="/default_action" extends="struts-default"> <default-action-ref name="index"></default-action-ref> <default-class-ref class="com.demo.action.DemoAction01"></default-class-ref> <action name="index" class="com.demo.action.DemoAction01"> <result name="success">/path/path01.jsp</result> </action> </package> </struts>
SETP3:
方法1:
Action 的 URL 传递接受参数:
在URL中传递过来参数和ACTION的成员变量的参数是一一对应关系。
package com.demo.action; import com.opensymphony.xwork2.ActionSupport; public class ParamActionDemo01 extends ActionSupport { private String user_name; private String book_name; private String age; private String test_name1; public String query() { System.out.println("用户名:"+this.user_name); System.out.println("书 名:"+this.book_name); System.out.println("年 龄:"+this.age); System.out.println("测试用户名:"+this.test_name1); return SUCCESS; } public String getUser_name() { return user_name; } public void setUser_name(String user_name) { this.user_name = user_name; } public String getBook_name() { return book_name; } public void setBook_name(String book_name) { this.book_name = book_name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public String getTest_name() { return test_name1; } public void setTest_name(String test_name) { this.test_name1 = test_name; } }
实验:Action的成员变量和方法中的变量是struts2给成员变量赋值还是给对应的方法中的变量赋值。
方法2:域模型(domain model) 常用
域模型其实就是实体类(实实在在的物体)
使用域模型可以创建一个实体类,通过实体类接受参数。
package com.demo.action; import com.demo.model.UserModel; import com.opensymphony.xwork2.ActionSupport; public class ParamDomainModelActionDemo01 extends ActionSupport{ private UserModel user_model; public String modify() { //连接数据库,操作数据库数据 //UserModel struts2中自动生成对象 System.out.println("model 用户名:"+user_model.getUser_name()); System.out.println("model 书 名:"+user_model.getBook_name()); System.out.println("model 年 龄:"+user_model.getAge()); System.out.println("model 测试用户名:"+user_model.getTest_name1()); return SUCCESS; } public UserModel getUser_model() { return user_model; } public void setUser_model(UserModel user_model) { this.user_model = user_model; } }
查资料:DTO
方法3:模型驱动接受参数(model driven)
非常重要哦程序设计思想,但是不常用
package com.demo.action;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import com.demo.model.UserModel;
/**
* 模型驱动接口传递参数需要声明和实例化实体类 需要通过使用getModel()方法获取参数。
*
* 模型驱动是一种设计编程思路的思想
*
* 设计思想是MVC
* @author Administrator
*
*/
public class ModelDrivenAction extends ActionSupport implements ModelDriven<UserModel>{
private UserModel userModel =new UserModel();
public String edit() {
return SUCCESS;
}
public UserModel getModel(){
return userModel;
}
}
Struts中的模型驱动是有一个getModel() 获取接受参数。
STRUTS2 MVC
接受参数的中文乱码问题?????
方法:读程序可以使用一条线,或者使用DEBUG,根据业务流程读源程序
努力:
总结:
Action 简单数据验证
使用addFieldError和<s:fielderror />标签处理数据校验的正确性
value stack
发表评论
-
Struts2 项目之分析和设计
2011-12-27 10:48 720项目之分析和设计 项目/产品开发步骤如下: ... -
STRUTS2 国际化(I18N)
2011-12-12 19:41 1000STRUTS2 国际化:1:I18N原理 packag ... -
Struts2的拦截器基本原理
2011-12-12 18:14 845Struts2的拦截器基本原理 主要是通过jav ... -
Struts2 异常处理
2011-12-12 17:26 987Struts2 异常处理机制 任何程序设计语言都是有异常 ... -
Struts2 之struts tags
2011-12-12 17:12 1025Struts2 的struts 标签 实战 ... -
Struts2 OGNL
2011-12-12 17:09 851Struts2 OGNL OGNL是Objec ... -
Struts2 Result 实例
2011-12-05 18:50 11121:Action result type 常用的四种类 ... -
Struts2 之Result
2011-12-03 13:27 752在struts2框架中,当act ... -
Struts2 Action 通配符
2011-12-01 11:06 1087Struts2 Action 通配符 在stru ... -
Struts2 Action 访问web 元素、Action模块包含、默认Action
2011-12-01 10:58 1208<%@ page language="java ... -
Struts2的动态方法调用
2011-11-29 10:19 1202Struts2的动态方法调用 在struts2中,可 ... -
struts2的路径和通配符
2011-11-28 19:07 997struts2的路径1) 在struts2中的路径问题是根据a ... -
Struts2 之Action
2011-11-25 17:11 724在Struts2中 Action 的操作可以在struts.x ... -
Struts2 之ACTION的namespace
2011-11-25 14:07 923struts2的命名空间分为两类: 1)默认命名空 ... -
Struts2 入门概述
2011-11-25 11:05 855Struts2 入门概述 Struts2 主要是通过导 ... -
Struts2 简介、设计思想、 核心 、流程
2011-11-25 10:47 1158切忌:做事情的条理性和管理自己的习惯性,不能到处乱 ...
相关推荐
在深入探讨Struts2验证框架参数之前,我们首先简要回顾一下Struts2框架本身。Struts2是基于MVC(Model-View-Controller)设计模式的Java Web应用框架,它提供了一种灵活的方式来构建可扩展的企业级Web应用程序。...
### Struts2 接受参数的几种方式 #### 第一种方式:直接在 Action 中设置变量 这种方式是最直接的参数接收方式。当从前端传递参数到后端时,我们需要确保 Action 类中有与这些参数名称相匹配的变量。例如,如果...
一个简单的例子是使用`$.ajax()`函数,指定URL为Struts2 Action的路径,方法为GET或POST,根据你的需求来传递参数,如待验证的用户名。 3. **服务器端验证**:在Action类中,你需要编写一个方法来检查用户名是否已...
Struts2是一个流行的Java web开发框架,它提供了一种强大的数据输入验证机制,确保用户提交的数据符合预期格式和约束。本教程将深入讲解Struts2中的数据输入验证,包括两种主要验证方式:客户端验证和服务端验证。...
在Struts2中,校验器(Validator)是处理用户输入验证的核心组件,确保提交到服务器的数据符合预设的业务规则。这篇博客文章可能是关于如何使用Struts2的内置校验机制以及自定义校验规则的探讨。 Struts2的校验框架...
在Struts2中,Validation框架是用于处理数据验证的重要组件,它允许开发者在用户输入提交到服务器之前或之后进行验证,确保数据的准确性和完整性。下面将详细解释Struts2中的Validation框架及其在前后台验证中的应用...
### Struts2参数配置详解 #### 一、概述 在深入了解Struts2框架时,我们不可避免地会接触到各种参数配置。这些配置对于整个框架的运行至关重要。本文将围绕Struts2中的关键配置进行深入探讨,旨在帮助开发者更好地...
本篇文章将深入探讨Struts1.x和Struts2.x在向Action中填充JSP参数的原理。 Struts1.x的工作原理: Struts1的核心是ActionServlet,它是一个实现了Servlet接口的控制器。当用户发起HTTP请求时,请求会被Dispatcher...
Struts2是一个流行的Java web开发框架,其在处理用户表单数据时提供了强大的验证功能,确保输入的数据符合预期的格式和规则。本文将深入探讨Struts2的表单验证机制。 首先,Struts2的输入验证分为两种方式:手动...
Struts2的Validator插件支持基于XML或注解的服务器端验证,可以在Action类中定义验证规则。 在XML验证中,会在struts-plugin.xml或struts.xml中配置Validator的引用,然后在单独的validation.xml文件中定义每个...
- **定义**:拦截器是在Action执行前后执行的一段代码,可以用来做一些预处理或后处理的工作,比如权限验证、数据验证等。 - **实现方式**:通过继承`Interceptor`接口或其子接口来实现自定义的拦截器。 - **应用...
这篇博客主要讨论了如何配置Struts2 Action中的多个方法以及如何进行数据验证。 首先,一个Action类可以包含多个方法,每个方法对应一个特定的HTTP请求。这种多方法配置允许我们根据不同的请求路径来调用不同的业务...
第1章 Struts 2:现代Web框架 2 1.1 Web应用程序:快速学习 2 1.1.1 构建Web应用程序 2 1.1.2 基础技术简介 3 1.1.3 深入研究 6 1.2 Web应用程序框架 7 1.2.1 什么是框架 7 1.2.2 为什么使用框架 8 1.3 Struts 2框架...
本实验主要涉及三个核心概念:动态方法调用、请求参数的获取以及简单的表单数据验证。 **动态方法调用(Dynamic Method Invocation,DMI)** 在Struts2中,动态方法调用是其一大特性,允许开发者通过URL直接调用...
这篇博客文章可能深入探讨了Struts2如何在Action类中获取和管理这些参数。 首先,Struts2的核心是DispatcherServlet,它负责拦截所有的HTTP请求,并根据配置的拦截器栈来处理请求。在Struts2中,Action类是业务逻辑...
5. **类型转换与数据校验**:Struts2内置了强大的类型转换器和数据校验机制,能够自动将HTTP请求参数转化为Java对象,同时进行数据的合法性验证。 6. **Ajax支持**:Struts2通过JSON结果类型和Ajax插件,方便地实现...
综上所述,"应用Struts2处理表单数据"这个主题涵盖了Struts2框架中的诸多关键概念,包括Action设计、表单数据绑定、结果处理、拦截器、配置、表达式语言以及验证和异常处理机制。这些知识点对于理解和开发基于Struts...