- 浏览: 198681 次
- 性别:
- 来自: 合肥
文章分类
最新评论
-
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 692项目之分析和设计 项目/产品开发步骤如下: ... -
STRUTS2 国际化(I18N)
2011-12-12 19:41 975STRUTS2 国际化:1:I18N原理 packag ... -
Struts2的拦截器基本原理
2011-12-12 18:14 819Struts2的拦截器基本原理 主要是通过jav ... -
Struts2 异常处理
2011-12-12 17:26 965Struts2 异常处理机制 任何程序设计语言都是有异常 ... -
Struts2 之struts tags
2011-12-12 17:12 989Struts2 的struts 标签 实战 ... -
Struts2 OGNL
2011-12-12 17:09 823Struts2 OGNL OGNL是Objec ... -
Struts2 Result 实例
2011-12-05 18:50 10941:Action result type 常用的四种类 ... -
Struts2 之Result
2011-12-03 13:27 721在struts2框架中,当act ... -
Struts2 Action 通配符
2011-12-01 11:06 1059Struts2 Action 通配符 在stru ... -
Struts2 Action 访问web 元素、Action模块包含、默认Action
2011-12-01 10:58 1180<%@ page language="java ... -
Struts2的动态方法调用
2011-11-29 10:19 1185Struts2的动态方法调用 在struts2中,可 ... -
struts2的路径和通配符
2011-11-28 19:07 967struts2的路径1) 在struts2中的路径问题是根据a ... -
Struts2 之Action
2011-11-25 17:11 704在Struts2中 Action 的操作可以在struts.x ... -
Struts2 之ACTION的namespace
2011-11-25 14:07 900struts2的命名空间分为两类: 1)默认命名空 ... -
Struts2 入门概述
2011-11-25 11:05 822Struts2 入门概述 Struts2 主要是通过导 ... -
Struts2 简介、设计思想、 核心 、流程
2011-11-25 10:47 1133切忌:做事情的条理性和管理自己的习惯性,不能到处乱 ...
相关推荐
第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框架...
建立一个Struts2 工程,用Action的属性接收参数,使用Domain Model (实体模型) 接收参数,Struts2_2.1.6版本的中文问题,Struts模块包含,Struts简单数据验证 ,Struts ValueStack(值栈) Debug,Value Stack ...
十一、 简单数据验证 12 十二、 访问Web元素 14 一、 方法一:ActionContext方式 15 二、 方式二:Ioc(控制反转)—推荐使用 15 三、 方式三:获取原类型 16 四、 方式四:获取原类型-控制反转 17 十三、 Struts2配置...
十一、 简单数据验证 12 十二、 访问Web元素 14 一、 方法一:ActionContext方式 15 二、 方式二:Ioc(控制反转)—推荐使用 15 三、 方式三:获取原类型 16 四、 方式四:获取原类型-控制反转 17 十三、 Struts2配置...
作者处处从实战出发,在丰富的示例中直观地探讨了许多实用的技术,如数据类型转换、文件上传和下载、提高Struts 2应用的安全性、调试与性能分析、FreeMarker、Velocity、Ajax,等等。跟随作者一道深入Struts 2,聆听...
maven3+struts2+spring+ibatis,本来是用maven3+struts2+spring+hibernate但考虑到hibernate在多表级联查询的时候执行效率不高,所以改用性能更好不过sql比较麻烦的的ibatis,本项目只有登录和插入数据,仅供参考: ...
ActionForm 是一些封装和验证请求参数的简单 JavaBean。要验证请求数据,ActionForm 的 validate() 方法必须给出一个特定于该情况的实现。ActionForm 作为运载工具,向 Action 类提供请求数据。一个 JSP 对象与各自...
这个属于与Spring整合的问题,Spring容器在初始化对象的时候会根据bean的scope配置来考虑是重新建立一个对象,还是继续使用原来的对象,拿struts2的action的bean来说,如果scope这个参数没有配置,默认就是单例,即...
04 Struts_04DispatchAction : 分发Action,根据设置的参数值提交到不同的方法进行处理业务,演示数学运算 05 Struts_05DynaActionForm : 相对应ActionForm来说,动态ActionForm只需要在配置文件中配置就可以了,...
书中介绍了如何利用Struts 2 来解决Web 应用开发中的常见问题,同时还深入浅出地探讨了许多能帮助程序员编写Struts 2 应用程序的技巧,如管理页面导航活动、输入验证、国际化和本地化、对Ajax 的支持,等等。...
9.4 StrutsAction单态陷阱,请谨慎使用全局变量 13 9.5 Struts异常处理 13 第10章 struts中使用国际化(i18n) 13 10.1 struts国际化程序尝试 13 10.1 Java对i18n的支持 14 10.1 struts框架中对国际化的支持 14 第11...
16.2 协同使用Spring和WebWork 2/Struts 2 16.3 集成Spring和Tapestry 16.3.1 集成Spring和Tapestry 3 16.3.2 集成Spring和Tapestry 4 16.4 协同使用Spring和JSF 16.4.1 解析JSF管理的属性 16.4.2 解析Spring...
16.2协同使用spring和webwork2/struts2 16.3集成spring和tapestry 16.3.1集成spring和tapestry3 16.3.2集成spring和tapestry4 16.4协同使用spring和jsf 16.4.1解析jsf管理的属性 16.4.2解析springbean 16.4.3...
B 在FormBean中可以对页面上传递来的参数进行一下格式上的验证,这种验证是一种客户端的验证 C 用户每次提交表单,都会产生一个新的FormBean实例 D 动态FormBean不能进行验证操作 答案:A 8.以下哪些不是...
5 数据验证...........................................................................................................................14 5.1 validate 方法验证..............................................
Struts2 Struts2核心控制流程、Ognl、Action、Interceptor、Result、FreeMarker、Struts2标记库、Struts2扩展、Struts2应用技巧(输入验证、消息国际化、文件上传和下载、防止重复提交等)。 熟练掌握Struts2核心...
• Before passing it to the Action class, Struts will also conduct form state validation by calling the validation() method on UserActionForm. Note: This is not always wise to do. There might be ways ...
16.2 协同使用Spring和WebWork 2/Struts 2 16.3 集成Spring和Tapestry 16.3.1 集成Spring和Tapestry 3 16.3.2 集成Spring和Tapestry 4 16.4 协同使用Spring和JSF 16.4.1 解析JSF管理的属性 16.4.2 解析Spring...