`

struts2中的action-01(简单配置与使用)

阅读更多
struts2中的Action可以是一个普通的POJO的java类,而不用继承或实现特定的接口,只需要遵守像一定的约定就行。下面就是一个Action
class POJOAction { 
 public String execute() throws Exception { 
   return "success"; 
 } 
} 

默认的情况下会执行execute()方法,所以你的Action中必需要有一个execute()方法,方法的返值是我们熟悉的String类型,这个值会在Action的配置文件中得到匹配。你也可以指定执行自己的方法名,只要在配置文件中稍作配置就可以了,但是另忘了为你的方法返回一个String类型的值。下面是在struts.xml简单的配置一个Action:
<action name="hello" class="包名.类名" > 
<result>hello.jsp</result> 
</action> 
name属性指定此Action映射的URL,在这里你可以通过hello.action访问此Action类;
"*.action"的扩展名是通过struts.properties配置的,你也可以改成你自己喜欢的扩展名


为什么我们要为每个方法返回一个String值呢?
根据方法所返回的值,以确定你要做什么事,如下例子
class HelloAction { 
 public String execute() throws Exception { 
   if( hasSayed() ) { 
     return "success"; 
   } else { 
     return "error"; 
   } 
 } 
} 
配置:
<action name="hello" class="xxx.yyy.HelloAction" > 
<result>hello.jsp</result> 
<result name="error">error.jsp</result> 
</action> 
 从上面的配置可以看出,result中的name属性对应的就是方法的返回值,当没有为result指定name时,name属性还是存在的,而且默认值为"success".


前面提到的方法必需返回一个String值其实是不对的?
定义Action的结果其实有四种方式
  • Action返回一个字符串,也是最常用的一种(我们前面讲的那种方式)
  • 使用 @Result注解——  action类可以用@Results 和@Result注
  • 解来标注多个不同的结果。Action所返回的字符串需要与所注
    解的结果之一相匹配。
  • 方法返回一个 Result类的实例——Action不必一定要返回一个
  • 字符串,它可以返回一个 Result类的实例,该实例应当是已经
    配置好可使用的。
  • 使用Code behind插件 ——当使用这个插件的时候,它会将
  • Action的名字和Action返回的结果字符串进行连接来得到视
    板。比如说,如果URL是“/adduser.action”,而Action返回
    “success”,那么要渲染的页面就是“/adduser-success.jsp”
    更多信息请参见http://struts.apache.org/2.x/docs/codebehind-
    plugin.html。


结果类型
还记得上面的配置中的result节点吗,上次我们介绍了它的name属性,这一次要说的是type属性,type也有一个默认的值"dispatcher"-->渲染jsp,更多的结果类型可以在struts-default.xml中的package标签时找到,如下:
 <package name="struts-default" abstract="true">
        <result-types>
            <result-type name="chain" class="com.opensymphony.xwork2.ActionChainResult"/>
            <result-type name="dispatcher" class="org.apache.struts2.dispatcher.ServletDispatcherResult" default="true"/>
            <result-type name="freemarker" class="org.apache.struts2.views.freemarker.FreemarkerResult"/>
            <result-type name="httpheader" class="org.apache.struts2.dispatcher.HttpHeaderResult"/>
            <result-type name="redirect" class="org.apache.struts2.dispatcher.ServletRedirectResult"/>
            <result-type name="redirectAction" class="org.apache.struts2.dispatcher.ServletActionRedirectResult"/>
            <result-type name="stream" class="org.apache.struts2.dispatcher.StreamResult"/>
            <result-type name="velocity" class="org.apache.struts2.dispatcher.VelocityResult"/>
            <result-type name="xslt" class="org.apache.struts2.views.xslt.XSLTResult"/>
            <result-type name="plainText" class="org.apache.struts2.dispatcher.PlainTextResult" />
            <!-- Deprecated name form scheduled for removal in Struts 2.1.0. The camelCase versions are preferred. See ww-1707 -->
            <result-type name="redirect-action" class="org.apache.struts2.dispatcher.ServletActionRedirectResult"/>
            <result-type name="plaintext" class="org.apache.struts2.dispatcher.PlainTextResult" />
        </result-types>
.....


数据交互(请求表单)
struts2采用了javabean来对数据交互的处理,所以你应当在你的Action中定义getter与setter方法,你可以为你的setter方法指定任何primitive类型的参数而不仅仅是字符串,struts2会自动为你转换类型,如果要让这条规则也适用与自己创建的类,则可以进行相应的配置。另外,struts2提供了一个更复杂的实现,当你的表单属性的名字为aaa.bbb.ccc时,在Action中就会调用getAaa().getBbb().setCcc(...)进行附值


分享到:
评论

相关推荐

    Struts2 in action中文版

    9.1 为什么在Struts 2中使用Spring 196 9.1.1 依赖注入能做些什么 197 9.1.2 Spring如何管理对象和注入依赖 199 9.1.3 使用接口隐藏实现 200 9.2 将Spring添加到Struts 2 202 9.2.1 让Spring管理动作、拦截器和结果...

    Myeclipse开发struts+hibernate+spring新手入门--环境配置---项目开发示例

    Myeclipse开发struts+hibernate+spring新手入门---环境配置----项目开发示例 Myeclipse开发struts+hibernate+spring小记 开发前准备工作: 1、下载eclipse3.1版本 下载地址: 2、下载Myeclipse插件 下载地址: 3...

    javaWeb_struts2框架实现简单用户注册登录

    基于javaWeb MVC模式,借助struts2框架编写,实现用户简单的注册与登录功能。 1.本demo严格按照MVC的分层模式采用myeclipse编写,可直接运行,服务器为tomcat,数据库为mysql。 2.数据库操作使用c3p0连接池和dbtuils...

    Struts2详解,Struts2与Struts1的区别

    开发一个Struts2简单实例 5. struts.xml文件 三. Struts2深入开发 6. 常用&lt;Action&gt;标签配置和使用 7. 常用标签配置和使用 8. &lt;global-results&gt;标签 9. Action类的开发 10. 数据类型转换器 11. 实现...

    Struts2全解Struts2全解

    Namespace、自定义Action、路径问题、通配符、包含模块配置文件、默认Action、接受用户输入、服务器跳转、Action中访问web元素、简单数据校验、调用Action的自定义方法 5struts2国际化 ......... 6 struts2输入校验...

    Struts2基本原理

    Struts 2框架本身大致可以分为3个部分:核心控制器FilterDispatcher、业务控制器Action和用户实现的企业业务... Struts 2的工作流程相对于Struts 1要简单,与WebWork框架基本相同,所以说Struts 2是WebWork的升级版本。

    EJB+JBOSS6.0+STRUT2简单登录实例

    -- 定义包管理配置的action 继承struts-default.xml中的配置 --&gt; &lt;package name="actions" extends="struts-default"&gt; &lt;!-- 定义Action(login.action) --&gt; &lt;action name="login" class="mypack.UserAction"&gt; &lt;!...

    非常不错的中文struts2教程[CHM]

    内容: 1、OGNL —— 数据运转的催化剂 2、Result机制,让视图更丰富 3、Struts2配置详解 4、Struts2中的Action 5、Struts2中的参数传递 6、标签库,永恒的争论话题 7、拦截器详解 ...10、在Struts2中使用OGNL

    struts2简单实例

    学生信息查询实例,用struts2配置文件,action的实现以及通过action实现前后台的数据传输

    Struts2 学习笔记

    01 Struts2-Action 5 一、 Struts作用: 5 二、 搭建Struts2的运行环境: 5 三、 Namespace 6 四、 标签 6 五、 Action 6 六、 路径问题的说明 8 七、 Action的动态调用方法 8 八、 Action通配符(wildcard)的配置 9 ...

    struts2+spring+hibernate整合示例

    2 将struts2 整合进去, 这次在struts.xml中我们使用通配符的方式配置action。 a 加入支持 : 添加struts2.3.15 必需包 以及 struts json包(ajax要用到),spring整合struts2包,spring web 包,在src目录下建立...

    struts1和struts2的区别

    struts1的配置比struts2麻烦很多。不仅要在.xml里写繁多的配置,多数也还要写一个FormBean来和action对应。struts2配置简单。不用继续servlet,任何一个带有方法的类都能当作action来使用。

    struts2注解详细说明

    从struts2.1版本开始,Convention Plugin作为替换替换Codebehind Plugin来实现Struts2的零配置。• 包命名习惯来指定Action位置• 命名习惯制定结果(支持JSP,FreeMarker等)路径• 类名到URL的约定转换• 包名...

    深入浅出struts2

    为了达成这一目标,Struts2中提供了很多新特性,比如智能的默认设置、annotation的使用以及“惯例重于配置”原则的应用,而这一切都大大减少了XML配置。Struts2中的Action都是POJO,这一方面增强了Action本身的可...

    实现struts框架简单功能

    简单实现struts功能。能够通过配置定义Action,能够把客户端的简单数据类型(String,int)传递给Action并从Action中取出结果值。另有简单的拦截器功能。没积分了,分享一下。哈哈

    ajaxt json 调用struts2 action的实例(myeclipse 直接导入运行)

    ajaxt json 调用struts2 action的实例(myeclipse 直接导入运行) 学习点: 1;怎样在页面用ajax调用struts2的action 2;怎样对struts进行配置 3;ajax的运行历程 最简单明了的实例,清晰的帮你弄清上述概念,运行...

    Struts2学习示例

    9、struts2的Action实现,其中用到了两种方法 (1)UserAction类是比较方便的方法,本系统就只用到了UserAction类 (2)AddUserAction、DeleteUserAction、ViewUserAction是另外一种实现,比较繁琐,可供参考 10、...

    struts的教程.doc

    有关Struts Action Mapping的配置描述 14 Form-bean元素 15 Action元素 15 Struts高级特性(Struts Advanced Feature) 17 验证 17 使用异常处理声明 19 使用应用模块(Application Modules) 21 把JSP放到...

    Struts2帮助```````

    01 Struts2-Action 5 一、 Struts作用: 5 二、 搭建Struts2的运行环境: 5 三、 Namespace 6 四、 标签 6 五、 Action 6 六、 路径问题的说明 8 七、 Action的动态调用方法 8 八、 Action通配符(wildcard)的配置 9 ...

    最新Struts2+jq+ajax+json 学会总要4步‵‵超级简单,里面包含实例

    2. 配置struts.xml &lt;?xml version="1.0" encoding="UTF-8" ?&gt; &lt;!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" ...

Global site tag (gtag.js) - Google Analytics