- 浏览: 253144 次
- 性别:
- 来自: 湖南
文章分类
- 全部博客 (194)
- java (23)
- 数据结构和算法 (5)
- oracle (7)
- sql server (1)
- mysql (5)
- Ajax (5)
- JSTL (7)
- jsp (20)
- 组件 (11)
- C++可视化 (0)
- javascript (14)
- c/c++ (0)
- XML (6)
- 只是扩宽 (0)
- 设计模式 (3)
- 正则表达式 (3)
- 心情和感悟 (4)
- ACM (3)
- HTML/css (9)
- 软件破解 (2)
- spring (1)
- struts (15)
- hibernate (10)
- Servlet (2)
- sql (2)
- 面试题 (1)
- struts2 (22)
- Unix/Linux (0)
- javamail (1)
- svn (1)
- 异常 (3)
- EJB (3)
- jquery (2)
- android (1)
最新评论
-
lianlupengUestc:
From my testing (Struts2 versio ...
struts2 注解 -
yulongxiang:
非常感谢!!!!!!!
使用动态ActionForm(转)
b) 写自己的转换器:
c) 三种注册方式:i. 局部:XXXAction-conversion.properties
1. p(属性名称) = converter
ii. 全局:xwork-conversion.properties
1. com.xxx.XXX(类名)= converter
iii. Annotation
d) 如果遇到非常麻烦的映射转换i. request.setAttribute();
ii. session
如果遇到不能转换的类型,就到属性文件里面去看有没有转换器
1. p(属性名称) = converter
ii. 全局:xwork-conversion.properties
1. com.xxx.XXX(类名)= converter
iii. Annotation
public class MyPointConverter extends DefaultTypeConverter{ @Override public Object convertValue(Object value, Class toType) { if(toType == Point.class) { Point p = new Point(); String[] strs = (String[])value; String[] xy = strs[0].split(","); p.x = Integer.parseInt(xy[0]); p.y = Integer.parseInt(xy[1]); return p; } if(toType == String.class) { return value.toString(); } return super.convertValue(value, toType); } } public class MyPointConverter extends StrutsTypeConverter{ @Override public Object convertFromString(Map context, String[] values, Class toClass) { Point p = new Point(); String[] strs = (String[])values; String[] xy = strs[0].split(","); p.x = Integer.parseInt(xy[0]); p.y = Integer.parseInt(xy[1]); return p; } @Override public String convertToString(Map context, Object o) { // TODO Auto-generated method stub return o.toString(); } }
c) 三种注册方式:i. 局部:XXXAction-conversion.properties
1. p(属性名称) = converter
ii. 全局:xwork-conversion.properties
1. com.xxx.XXX(类名)= converter
iii. Annotation
d) 如果遇到非常麻烦的映射转换i. request.setAttribute();
ii. session
package com.hugui.action; import java.awt.Point; import java.util.Date; import java.util.List; import java.util.Map; import java.util.Set; import com.opensymphony.xwork2.ActionSupport; public class TestAction extends ActionSupport { private String name; private int age; private Date d; //传值:interests=example Set<String> interests; //传值:user['key']=value Map<String, String> users; //传值:p.x=4&p.y=5 Point p; List<Point> ps; Map<String, Point> points; @Override public String execute() throws Exception { return super.execute(); } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Date getD() { return d; } public void setD(Date d) { this.d = d; } public Set<String> getInterests() { return interests; } public void setInterests(Set<String> interests) { this.interests = interests; } public Map<String, String> getUsers() { return users; } public void setUsers(Map<String, String> users) { this.users = users; } public Point getP() { return p; } public void setP(Point p) { this.p = p; } public List<Point> getPs() { return ps; } public void setPs(List<Point> ps) { this.ps = ps; } public Map<String, Point> getPoints() { return points; } public void setPoints(Map<String, Point> points) { this.points = points; } }
package com.bjsxt.converter; import java.awt.Point; import java.util.Map; import org.apache.struts2.util.StrutsTypeConverter; public class MyPointConverter extends StrutsTypeConverter{ @Override public Object convertFromString(Map context, String[] values, Class toClass) { Point p = new Point(); String[] strs = (String[])values; String[] xy = strs[0].split(","); p.x = Integer.parseInt(xy[0]); p.y = Integer.parseInt(xy[1]); return p; } @Override public String convertToString(Map context, Object o) { // TODO Auto-generated method stub return o.toString(); } }
如果遇到不能转换的类型,就到属性文件里面去看有没有转换器
1. p(属性名称) = converter
ii. 全局:xwork-conversion.properties
1. com.xxx.XXX(类名)= converter
iii. Annotation
java.awt.Point=com.bjsxt.converter.MyPointConverter
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <%@taglib uri="/struts-tags" prefix="s" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>Type Conversion</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> name:<s:property value="name"/><br/> age:<s:property value="age"/><br/> date:<s:property value="d"/><br/> <s:date name="d" format="yyyy/MM/dd HH:mm:ss"/><br/> <s:property value="interests"/><br/> <s:property value="users"/><br/> <s:property value="p"/><br/> <s:property value="ps"/><br/> points:<s:property value="points"/><br/> </body> </html>
发表评论
-
Struts2.1 处理未知Action 和访问不存在的页面
2011-10-18 12:13 1369你可以配置个默认action,当请求的action不存在时,他 ... -
struts2文件上传
2011-04-05 01:25 969package com.hugui.qq.web.acti ... -
struts.xml (constant)
2011-03-26 19:12 1019<?xml version="1.0&qu ... -
java.lang.NoClassDefFoundError: org/apache/commons/fileupload/RequestContext
2011-03-26 18:17 8917严重: Exception starting filter ... -
struts2-用token拦截器屏蔽重复提交问题
2010-09-17 21:27 1112在服务器端生成一个随机值,然后传给客户端的form中,当客户端 ... -
struts2-自定义拦截器
2010-09-17 21:02 988用来验证。。。等等 package com.hugui. ... -
struts2-i18n
2010-09-16 21:59 1441login.username=username: log ... -
struts2-tags
2010-09-15 22:38 1000<?xml version="1.0&qu ... -
OGNL表达式语言学习
2010-09-13 10:31 987<?xml version="1.0&qu ... -
struts2-动态结果集
2010-09-13 09:03 1370UserAction.java package com.hu ... -
struts2-带参数的结果集
2010-09-13 08:58 939UserAction.java package com.h ... -
struts2-global-results
2010-09-12 23:31 1125struts.xml <?xml version=& ... -
struts2的常用Result类型用法
2010-09-12 22:42 1122chain 用来处理Action链 ... -
Struts2 使用Domain Model接收参数
2010-09-12 00:01 3077Domain Model 域模型,包含着项目里真正证存在的概念 ... -
Struts2_ActionWildcard_通配符配置
2010-09-11 23:30 803<?xml version="1.0&qu ... -
Struts2_ActionMethod_DMI_动态方法调用
2010-09-11 22:57 1306动态的方法调用:DMI 在form的action中使用动态的方 ... -
struts2-Action
2010-09-11 22:42 973<?xml version="1.0&qu ... -
struts2-path
2010-09-11 22:37 859<?xml version="1.0&qu ... -
struts.xml
2010-09-11 21:10 761<?xml version="1.0&qu ... -
struts2 中MyEclipse操作手册[来自互联网]
2010-09-11 20:48 1777前言 假 如 你 的 人 生 ...
相关推荐
6. **类型转换**:Struts2的类型转换器在处理JSON请求时起着关键作用,将JSON字符串转换为Java对象。 7. **自定义JSON序列化和反序列化**:源码中可能会包含自定义的序列化和反序列化逻辑,以便在转换过程中处理...
9. **类型转换(Type Conversion)**:Struts2提供了一套强大的类型转换机制,位于`org.apache.struts2.convention.converters`包下,可以自动将请求参数转换为Action属性的期望类型。 10. **注解支持(Annotations...
Struts2是一个非常流行的Java Web开发框架,它提供了一种模型-视图-控制器(MVC)架构,便于开发者构建动态、数据驱动的Web应用程序。然而,在开发过程中,经常会出现库文件版本不兼容的问题,这可能导致程序运行...
- `xwork-core.jar`: XWork是Struts2的前身,提供了一些基础功能,如类型转换、结果映射等。 5. **其他依赖** - `commons-fileupload.jar`: Apache Commons FileUpload库,用于处理HTTP请求中的文件上传。 - `...
Struts2的核心功能包括动作映射、拦截器、结果类型、插件系统等。 **JSON介绍:** JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它采用完全独立于语言的文本格式,但使用了类似于...
- **Interceptor(拦截器)**:这些是Struts2中的重要组件,它们在Action调用前后执行,提供了事务控制、日志记录、权限验证等功能。 - **配置文件**:通常有struts.xml或类似的配置文件,用于定义Action、结果...
XWork则是Struts2的基础框架,提供了一系列底层功能支持,如类型转换、拦截器机制等。 标题提到的"struts2-core-2.3.32"和"xwork-core-2.3.32"是Struts2框架的重要组成部分。"struts2-core-2.3.32.jar"包含了Struts...
`xwork-core-2.3.32.jar`是Struts2的基础框架,提供了动作调度、转换器、验证器等功能。它与`struts2-core`紧密协作,共同构成了Struts2的基础架构。在S2-045修复过程中,XWork库也相应地进行了更新,确保与安全增强...
8. **xwork-core.jar**:XWork是Struts 2的前身,它的核心功能被Struts 2继承,包括Action、Result、Interceptor等概念,以及类型转换、异常处理等机制。 9. **commons-lang3.jar, commons-logging.jar, log4j.jar*...
5. `xwork-2.0.11.jar`:XWork是Struts2的基础,提供动作管理和类型转换等功能。 6. `commons-logging-1.1.1.jar`、`log4j-1.2.15.jar`等:日志相关的库,帮助记录和调试应用日志。 在实际开发中,开发者需要将这些...
在Struts2框架中,JSON Plugin使得Action的返回结果可以直接转换为JSON格式,方便前端JavaScript代码处理。这个插件的版本为2.1.8,表明它是针对Struts2框架2.1.8版本设计和优化的。该版本可能包含了对JSON序列化、...
在Struts2框架中,该插件允许开发者将Action的返回结果直接转换为JSON格式,方便进行Ajax(Asynchronous JavaScript and XML)操作,提高Web应用的响应速度和用户体验。 标题"struts2-json-plugin-2.1.8.1.jar"表明...
- `xwork-core`: XWork是Struts2的基础,提供了Ognl表达式语言、类型转换、拦截器等功能。 2. **视图技术**: - `freemarker`: Struts2默认的视图模板引擎,用于动态生成HTML页面。 - `struts2-freemarker-...
7. **类型转换与验证**:Struts2提供了自动类型转换和字段验证的功能,使得表单提交的数据可以自动转换为Action中的属性,并进行合法性检查。 8. **国际化与本地化**:Struts2支持多语言,可以轻松实现应用的国际化...
2. **xwork-core.jar**:XWork是Struts 2的基础,提供了类型转换、验证、事件处理等基础服务。Struts 2构建在XWork之上,增强了MVC架构。 3. **ognl.jar**:Object-Graph Navigation Language(OGNL)是Struts 2中...
深入研究这两个库的源码,开发者能够理解Struts2的内部工作原理,优化性能,解决潜在问题,并根据需要定制自己的功能。这对于提升Web应用的开发效率和维护性具有重大意义。通过分析源码,开发者还可以学习到设计模式...
6. **类型转换(Type Conversion)**:Struts2自动处理表单数据的类型转换,减少了开发者手动处理数据格式化的工作。 7. **验证框架**:内置的验证框架可以方便地对用户输入进行验证,提供了一套灵活的验证规则和...
Struts2是一个流行的Java web应用程序框架,用于构建和维护可扩展、模块化且易于管理的MVC(模型-视图-控制器)应用。在本文中,我们将深入探讨Struts2框架的基本概念,以及如何利用Struts2-2.1.6版本创建一个最简单...
转换器的配置可以通过局部配置(Action所在包下的Action简单类名-conversion.properties)或全局配置(src下的xwork-conversion.properties)来完成。 **自定义错误信息** 当类型转换失败时,Struts2会打印英文的...
2. **Interceptor拦截器**:Struts2的拦截器机制是其一大亮点,允许开发者在Action执行前后插入自定义的处理逻辑,例如日志记录、权限验证、数据校验等。这些拦截器可以通过配置文件或注解灵活组合使用。 3. **...