- 浏览: 160721 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
acang84n:
难得是2.3的版本注解方式不一样!?
Struts2 注解配置 demo2 -
acang84n:
为什么用struts2-convention-plugin-2 ...
Struts2 注解配置 demo2 -
taney_911:
这个正则表达式也太长了把。。。
Java中正则表达式验证日期格式 -
iamaj2eeprogrammer:
非常感谢你给出的例子!
Struts2 注解配置 demo2 -
superran_sy:
害人。。。
8888-88-88
居然也格式正确
Java中正则表达式验证日期格式
from http://www.vaannila.com/struts-2/struts-2-example/struts-2-annotation-example-1.html
这个例子当中需要注意的是:
1 必须引入struts2-convention-plugin-2.1.6包
2 WelcomeUser 类要放在 action命名的包下
3 welcome-user.jsp要放在web-inf/content目录下
4 具体请参见 Convention plug-in 运行原理
一搭建环境
jdk1.6 struts2.1.6 tomcat6.0
所需包
01.commons-fileupload-1.2.1
02.commons-io-1.3.2
03.commons-logging-1.1
04.freemarker-2.3.13
05.junit-3.8.1
06.ognl-2.6.11
07.spring-test-2.5.6
08.struts2-convention-plugin-2.1.6
09.struts2-core-2.1.6
10.xwork-2.1.2
二代码
web.xml
WelcomeUser.java
index.jsp在web-inf下
welcome-user.jsp在web-inf/content目录下
三Convention plug-in 运行原理
the example works fine. Now lets see how the example works.
The Convention plug-in is the one which does everything in the background. The Convention plug-in does the following things.
* By default the Convention plug-in looks for the action classes inside the following packages strut, struts2, action or actions. Here our package name is com.vaannila.action. Any package that matches these names will be considered as the root package for the Convention plug-in.
* The action class should either implement com.opensymphony.xwork2.Action interface or the name of the action class should end with Action. Here we extend our WelcomeUser class from com.opensymphony.xwork2.ActionSupport which inturn implements com.opensymphony.xwork2.Action.
* The Convention plug-in uses the action class name to map the action URL. Here our action class name is WelcomeUser and the URL is welcome-user. The plug-in converts the camel case class name to dashes to get the request URL.
* Now the Convention plug-in knows which Action class to call for a particular request. The next step is to find which result to forward based on the return value of the execute method. By default the Convention plug-in will look for result pages in WEB-INF/content directory.
* Now the Convention plug-in knows where to look for results, but it doesn't know which file to display inside the content directory. The Convention plug-in finds this with the help of the result code returned by the Action class. If "success" is returned then the Convention plug-in will look for a file name welcome-user-success.jsp or welcome-user.jsp . It need not be a jsp file it can be even a velocity or freemaker files. If the result value is "input" it will look for a file name welcome-user-input.jsp or welcome-user-input.vm or welcome-user-input.ftl.
这个例子当中需要注意的是:
1 必须引入struts2-convention-plugin-2.1.6包
2 WelcomeUser 类要放在 action命名的包下
3 welcome-user.jsp要放在web-inf/content目录下
4 具体请参见 Convention plug-in 运行原理
一搭建环境
jdk1.6 struts2.1.6 tomcat6.0
所需包
01.commons-fileupload-1.2.1
02.commons-io-1.3.2
03.commons-logging-1.1
04.freemarker-2.3.13
05.junit-3.8.1
06.ognl-2.6.11
07.spring-test-2.5.6
08.struts2-convention-plugin-2.1.6
09.struts2-core-2.1.6
10.xwork-2.1.2
二代码
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>Struts2_Annotations1</display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
WelcomeUser.java
package com.test.action; import com.opensymphony.xwork2.ActionSupport; public class WelcomeUser extends ActionSupport { private String userName; private String message; public String execute() { message = "Welcome" + userName; return SUCCESS; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } }
index.jsp在web-inf下
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="/struts-tags" prefix="s"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Annotations1</title> </head> <body> <body> <s:form action="welcome-user"> <s:textfield name="userName" label="User Name" /> <s:submit /> </s:form> </body> </html>
welcome-user.jsp在web-inf/content目录下
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Welcome User</title> </head> <body> <h1>${message}</h1> </body> </html>
三Convention plug-in 运行原理
the example works fine. Now lets see how the example works.
The Convention plug-in is the one which does everything in the background. The Convention plug-in does the following things.
* By default the Convention plug-in looks for the action classes inside the following packages strut, struts2, action or actions. Here our package name is com.vaannila.action. Any package that matches these names will be considered as the root package for the Convention plug-in.
* The action class should either implement com.opensymphony.xwork2.Action interface or the name of the action class should end with Action. Here we extend our WelcomeUser class from com.opensymphony.xwork2.ActionSupport which inturn implements com.opensymphony.xwork2.Action.
* The Convention plug-in uses the action class name to map the action URL. Here our action class name is WelcomeUser and the URL is welcome-user. The plug-in converts the camel case class name to dashes to get the request URL.
* Now the Convention plug-in knows which Action class to call for a particular request. The next step is to find which result to forward based on the return value of the execute method. By default the Convention plug-in will look for result pages in WEB-INF/content directory.
* Now the Convention plug-in knows where to look for results, but it doesn't know which file to display inside the content directory. The Convention plug-in finds this with the help of the result code returned by the Action class. If "success" is returned then the Convention plug-in will look for a file name welcome-user-success.jsp or welcome-user.jsp . It need not be a jsp file it can be even a velocity or freemaker files. If the result value is "input" it will look for a file name welcome-user-input.jsp or welcome-user-input.vm or welcome-user-input.ftl.
发表评论
-
java 图片压缩
2013-10-17 14:30 567http://fandayrockworld.iteye.co ... -
java的spring的quartz 时间配置相应字符串的说明与实例
2011-12-15 11:19 1017本文源自:http://js.sse6.cn/gzsgfrz/ ... -
Spring事务配置的五种方式
2011-01-19 09:12 781http://www.blogjava.net/robbie/ ... -
log4j.xml配置 分级打印日志和打印到指定文件中
2009-11-26 12:50 4319<?xml version="1.0&qu ... -
Spring启动时出现 ERR=12505 异常
2009-11-26 12:47 1557这是由于,spring配置文件中有数据源配置错误,修改后就可以 ... -
用正则表达式替换手机号码前缀86
2009-11-25 09:24 3936Pattern p2 = Patt ... -
ibatis sqlMapConfig settings 中属性用法
2009-09-28 14:12 5118转自 http://zhangzuanqian.iteye.c ... -
SqlMapException: There is no statement named解决方法
2009-09-28 12:51 5500报如下异常解决方法 sqlMapConfig 里加入 < ... -
关于struts2无法加载struts.properties的问题
2009-09-25 17:52 1362http://blog.chinaunix.net/u/200 ... -
Spring2.5、Struts2、Ibatis2.3开发框架搭建
2009-09-25 17:47 1893Spring2.5、Struts2、Ibatis ... -
Struts2 注解配置 demo2
2009-08-21 17:02 6503http://www.vaannila.com/struts- ... -
Struts2 UI Tags Example
2009-08-21 11:39 1507转自处:http://www.vaannila.com/str ... -
Struts2 HelloWorld MAX的struts教程的demo
2009-08-20 15:51 1137原文http://www.blogjava.net/max/c ... -
使用Struts2
2009-08-20 14:45 1111原文http://developer.51cto.co ... -
JSP乱码解决 之 pageEncoding和contentType属性,UTF-8 GBK gb2312 详解
2009-07-30 10:14 1503文章来源于志伟教程资 ... -
Tomcat的JNDI配置
2009-07-06 15:53 1494驱动需要拷到tomcat/common/lib/目录 1 we ... -
web应用 xml方式配置
2009-07-06 15:49 779编写一个xml文件,然后放到tomcat目录/conf/Cat ... -
Tomcat类装载器
2009-07-06 15:12 834context.xml: <Context> ... -
解决request.getParameter()中文乱码的问题
2009-02-21 16:52 4990jsp页面中 用click事件调用js 此时的页面编码要用UT ... -
搭建SVN服务端
2009-02-09 11:12 1275转载http://hi.baidu.com/axhack/bl ...
相关推荐
本教程将通过一个"Struts2注解Demo"来深入探讨Struts2中的注解用法,帮助开发者更高效地配置和管理Action类。 首先,Struts2的注解允许我们避免传统的XML配置,从而实现更加简洁、直观的编程方式。在`Struts2Demo`...
1. **注解配置Action**: 使用`@Action`注解可以标记一个类或方法作为处理特定HTTP请求的Action。例如: ```java @Action(value = "myAction") public class MyAction { // ... } ``` 这表示名为"myAction...
在"struts2demo全注解"这个主题中,我们将深入探讨Struts2如何通过注解实现Action类的配置,以及如何封装请求参数到Map对象中。 在传统的Struts2配置中,我们通常会在`struts.xml`配置文件中定义Action、结果类型、...
在提供的“struts2 demo”压缩包中,你可以找到这些概念的具体实现,包括Action类、视图页面、配置文件等,通过分析和运行这些示例,你可以深入理解Struts2的工作原理和用法。这个压缩包对于初学者来说是一个很好的...
1. **struts.xml**:这是Struts2的主配置文件,定义了Action类、结果页面、拦截器等。在这个文件中,你可以看到Action的配置,如Action类的全限定名、处理的HTTP方法(GET或POST)、结果页面的跳转等。 2. **Action...
"Spring3Struts2Mybatis3注解开发实例"是一个集成这三大框架的项目,它利用注解来简化配置,提高开发效率。这个项目集成了Spring的依赖注入、Struts2的MVC架构和Mybatis的持久层操作,旨在为开发者提供一个高效且...
6. **表单验证**:Struts2提供了内置的字段验证功能,可以通过注解或XML配置实现。在登录Demo中,可能会有对用户名和密码的非空验证。 7. **JSP页面**:登录页面通常由JSP(JavaServer Pages)创建,包括用户名和...
标题 "自己的spring+struts2+mybatis Demo" 暗示了这是一个使用Spring、Struts2和MyBatis三个框架构建的Web应用程序示例。这个项目可能是为了教学或者实践目的,展示了如何将这三个流行的技术集成在一起以创建一个...
这个"struts2基本框架demo"是为初学者设计的一个入门示例,帮助理解Struts2的核心概念和基本结构。以下是对这个Demo的详细解析: 首先,让我们了解Struts2框架的基本组成部分: 1. **Action类**:在描述中提到的...
1. 引入依赖:项目中会包含Spring、Struts2、MyBatis的jar包或者对应的Maven/Gradle依赖。 2. 配置Spring:创建Spring的配置文件,配置数据源、事务管理器、SqlSessionFactory、MapperScannerConfigurer等。 3. 配置...
1. **Struts2 JSON插件**:Struts2提供了内置的JSON插件,允许我们直接将Action的返回值转换为JSON格式。安装并配置该插件后,只需在Action类的方法上添加`@Result(type="json")`注解,即可启用JSON响应。 2. **...
2. **配置文件**:Struts2的配置分为XML配置和注解配置。`struts.xml`是默认的配置文件,用于定义Action类、结果类型、拦截器等。通过配置文件,我们可以指定Action与URL的映射关系,以及Action的执行流程。 3. **...
1. 配置Struts2的`struts.xml`,定义Action的映射和结果。 2. 配置Spring的`beans.xml`,声明Service和DAO的bean,以及Struts2的插件。 3. 配置MyBatis的`mybatis-config.xml`,设置数据源和全局配置。 4. 在Service...
这个"struts2示例程序demo非常好"的压缩包,很可能会包含一个运行起来的Struts2示例应用,包括Action类、JSP页面、配置文件等,你可以通过运行这些示例来实际操作,从而加深对Struts2的理解。同时,配合标签库的使用...
在学生管理Demo中,Struts2的配置文件(如struts.xml)定义了各个Action类及其对应的URL映射,以及视图的跳转规则。此外,Struts2还提供了丰富的插件和结果类型,例如国际化、文件上传/下载、动态表单验证等功能,...
在实际的"Maven-web项目 Struts2 Struts注解"中,`Strut2-Demo`可能包含了以下内容: 1. `pom.xml`:Maven的配置文件,包含了项目依赖和构建信息。 2. `struts.xml`:Struts2的配置文件,可能包含了部分非注解的配置...
Struts2Demo1.rar 是一个Java Web开发的实例,它主要展示了如何集成Struts2框架与Hibernate ORM(对象关系映射)技术。这个项目旨在帮助开发者理解如何在实际应用中结合这两种强大的工具来构建动态、数据驱动的Web...
这个"struts2(ssh)带进度条文件上传 demo 的jar包1"可能是为了演示如何实现这一功能,但由于描述中提到权限问题,jar包被分成了三次上传,这里是第一部分。 在实现带进度条的文件上传时,通常需要以下步骤: 1. ...
通过这个"struts2 demo",学习者可以深入理解Struts2框架的核心概念,包括Action、Result、拦截器、注解配置以及XML配置等,并能够亲手实践一个完整的Web应用。这对于提升Java web开发技能和熟悉Struts2框架至关重要...
1. **异常处理**(Struts_0700_Exception):在Struts2中,我们可以自定义异常处理逻辑,通过配置`struts-default.xml`或`struts-plugin.xml`中的`<exception-mapping>`标签,指定特定异常应转发到哪个结果页面。...