`
plane
  • 浏览: 160721 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Struts2 注解配置 demo1

    博客分类:
  • 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
<?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.
分享到:
评论

相关推荐

    Struts2 注解 Demo

    本教程将通过一个"Struts2注解Demo"来深入探讨Struts2中的注解用法,帮助开发者更高效地配置和管理Action类。 首先,Struts2的注解允许我们避免传统的XML配置,从而实现更加简洁、直观的编程方式。在`Struts2Demo`...

    struts2.1.6零配置DEMO

    1. **注解配置Action**: 使用`@Action`注解可以标记一个类或方法作为处理特定HTTP请求的Action。例如: ```java @Action(value = "myAction") public class MyAction { // ... } ``` 这表示名为"myAction...

    struts2demo全注解

    在"struts2demo全注解"这个主题中,我们将深入探讨Struts2如何通过注解实现Action类的配置,以及如何封装请求参数到Map对象中。 在传统的Struts2配置中,我们通常会在`struts.xml`配置文件中定义Action、结果类型、...

    struts2 ,struts2 demo

    在提供的“struts2 demo”压缩包中,你可以找到这些概念的具体实现,包括Action类、视图页面、配置文件等,通过分析和运行这些示例,你可以深入理解Struts2的工作原理和用法。这个压缩包对于初学者来说是一个很好的...

    Struts2Demo2

    1. **struts.xml**:这是Struts2的主配置文件,定义了Action类、结果页面、拦截器等。在这个文件中,你可以看到Action的配置,如Action类的全限定名、处理的HTTP方法(GET或POST)、结果页面的跳转等。 2. **Action...

    Spring3Struts2Mybatis3注解开发实例

    "Spring3Struts2Mybatis3注解开发实例"是一个集成这三大框架的项目,它利用注解来简化配置,提高开发效率。这个项目集成了Spring的依赖注入、Struts2的MVC架构和Mybatis的持久层操作,旨在为开发者提供一个高效且...

    Struts2 Login Demo

    6. **表单验证**:Struts2提供了内置的字段验证功能,可以通过注解或XML配置实现。在登录Demo中,可能会有对用户名和密码的非空验证。 7. **JSP页面**:登录页面通常由JSP(JavaServer Pages)创建,包括用户名和...

    自己的spring+struts2+mybatis Demo

    标题 "自己的spring+struts2+mybatis Demo" 暗示了这是一个使用Spring、Struts2和MyBatis三个框架构建的Web应用程序示例。这个项目可能是为了教学或者实践目的,展示了如何将这三个流行的技术集成在一起以创建一个...

    struts2基本框架demo

    这个"struts2基本框架demo"是为初学者设计的一个入门示例,帮助理解Struts2的核心概念和基本结构。以下是对这个Demo的详细解析: 首先,让我们了解Struts2框架的基本组成部分: 1. **Action类**:在描述中提到的...

    spring-mybatis-struts2-master ——demo

    1. 引入依赖:项目中会包含Spring、Struts2、MyBatis的jar包或者对应的Maven/Gradle依赖。 2. 配置Spring:创建Spring的配置文件,配置数据源、事务管理器、SqlSessionFactory、MapperScannerConfigurer等。 3. 配置...

    Struts2_JSON_Demo

    1. **Struts2 JSON插件**:Struts2提供了内置的JSON插件,允许我们直接将Action的返回值转换为JSON格式。安装并配置该插件后,只需在Action类的方法上添加`@Result(type="json")`注解,即可启用JSON响应。 2. **...

    struts2 demo project

    2. **配置文件**:Struts2的配置分为XML配置和注解配置。`struts.xml`是默认的配置文件,用于定义Action类、结果类型、拦截器等。通过配置文件,我们可以指定Action与URL的映射关系,以及Action的执行流程。 3. **...

    最新的struts2 spring mybatis 整合的demo

    1. 配置Struts2的`struts.xml`,定义Action的映射和结果。 2. 配置Spring的`beans.xml`,声明Service和DAO的bean,以及Struts2的插件。 3. 配置MyBatis的`mybatis-config.xml`,设置数据源和全局配置。 4. 在Service...

    struts2示例程序demo非常好

    这个"struts2示例程序demo非常好"的压缩包,很可能会包含一个运行起来的Struts2示例应用,包括Action类、JSP页面、配置文件等,你可以通过运行这些示例来实际操作,从而加深对Struts2的理解。同时,配合标签库的使用...

    struts2+spring+ibatis学生管理demo

    在学生管理Demo中,Struts2的配置文件(如struts.xml)定义了各个Action类及其对应的URL映射,以及视图的跳转规则。此外,Struts2还提供了丰富的插件和结果类型,例如国际化、文件上传/下载、动态表单验证等功能,...

    maven-web项目 Struts2 Struts注解 Struts2返回json

    在实际的"Maven-web项目 Struts2 Struts注解"中,`Strut2-Demo`可能包含了以下内容: 1. `pom.xml`:Maven的配置文件,包含了项目依赖和构建信息。 2. `struts.xml`:Struts2的配置文件,可能包含了部分非注解的配置...

    Struts2Demo1.rar_struts demo_struts2_struts2和hib开发

    Struts2Demo1.rar 是一个Java Web开发的实例,它主要展示了如何集成Struts2框架与Hibernate ORM(对象关系映射)技术。这个项目旨在帮助开发者理解如何在实际应用中结合这两种强大的工具来构建动态、数据驱动的Web...

    struts2(ssh)带进度条文件上传 demo 的jar包1

    这个"struts2(ssh)带进度条文件上传 demo 的jar包1"可能是为了演示如何实现这一功能,但由于描述中提到权限问题,jar包被分成了三次上传,这里是第一部分。 在实现带进度条的文件上传时,通常需要以下步骤: 1. ...

    struts2 demo

    通过这个"struts2 demo",学习者可以深入理解Struts2框架的核心概念,包括Action、Result、拦截器、注解配置以及XML配置等,并能够亲手实践一个完整的Web应用。这对于提升Java web开发技能和熟悉Struts2框架至关重要...

    Struts2学习入门Demo备份

    1. **异常处理**(Struts_0700_Exception):在Struts2中,我们可以自定义异常处理逻辑,通过配置`struts-default.xml`或`struts-plugin.xml`中的`&lt;exception-mapping&gt;`标签,指定特定异常应转发到哪个结果页面。...

Global site tag (gtag.js) - Google Analytics