前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Struts2 Action

Struts2 Action

作者头像
Hongten
发布2018-09-13 17:12:17
5660
发布2018-09-13 17:12:17
举报
文章被收录于专栏:HongtenHongten

 具体实体的返回可以有用户自己定义的Action来决定

  具体的手段是根据返回的字符串找到对应的配置项,来决定实体的内容

  具体Action的实现可以是一个普通的java类,里面有public String execute方法即可

或者实现Action接口

  不过最常用的是从ActionSupport继承,好处在于可以直接使用Struts2封装好的方法

?----------------------------------------------Hongten-------------------------------------------

新建web project:struts2_0300_Action

Build Path

?----------------------------------------------Hongten-------------------------------------------

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="struts.devMode" value="true" /> ??? <package name="front" extends="struts-default" namespace="/"> ??????? <action name="index" class="com.bjsxt.struts2.front.action.IndexAction1"> ??????????? <result name="success">/ActionIntroduction.jsp</result> ??????? </action> ??? </package>

</struts>

?----------------------------------------------Hongten-------------------------------------------

当我们访问这个action的时候,他会去找对应的class:com.bjsxt.struts2.front.action.IndexAction1

在IndexAction1这个类中找到execute()方法,返回一个字符串。如:success,input,login,none等

如果我们这里没有class,则他默认的会去调用:com.opensymphony.xwork2.Action这个接口中的execute()方法

还有如果我们在struts.xml中的result中没有写name="success",他 的默认也是<result name="success">

?----------------------------------------------Hongten-------------------------------------------

在做测试的时候,分别修改:class="com.bjsxt.struts2.front.action.IndexAction2"

            和class="com.bjsxt.struts2.front.action.IndexAction3"

?在上面的三个测试当中,得到的是同样的结果;

?----------------------------------------------Hongten-------------------------------------------

那么三种方法有什么区别呢?我们应该使用那一种方法呢?

我们在真正开发过程中就用:class="com.bjsxt.struts2.front.action.IndexAction3"这种方法;

              其他的都不用;就是从ActionSupport继承,

原因是:

ActionSupport已经

              帮我们封装了一系列可以直接调用的特别方便的方法;有很多方法封装在其中,

              我们在子类中可以直接拿来就用了

?----------------------------------------------Hongten-------------------------------------------

IndexAction.java

代码:

package com.bjsxt.struts2.front.action;

public class IndexAction1 { ?public String execute() { ??return "success"; ?} }

?----------------------------------------------Hongten-------------------------------------------

IndexAction.java

代码:

package com.bjsxt.struts2.front.action;

import com.opensymphony.xwork2.Action;

public class IndexAction2 implements Action { ?@Override ?public String execute() { ??return "success"; ?} }

?----------------------------------------------Hongten-------------------------------------------

IndexAction.java

代码:

package com.bjsxt.struts2.front.action;

import com.opensymphony.xwork2.ActionSupport;

public class IndexAction3 extends ActionSupport { ?@Override ?public String execute() { ??return "success"; ?} }

?----------------------------------------------Hongten-------------------------------------------

ActionIntroduction.jsp

代码:

<?xml version="1.0" encoding="GB18030" ?> <%@ page language="java" contentType="text/html; charset=GB18030" ??? pageEncoding="GB18030"%> ??? <%@taglib uri="/struts-tags" prefix="s" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=GB18030" /> <title>Insert title here</title> </head> <body> 具体视图的返回可以由用户自己定义的Action来决定<br /> 具体的手段是根据返回的字符串找到对应的配置项,来决定视图的内容<br /> 具体Action的实现可以是一个普通的java类,里面有public String execute方法即可<br /> 或者实现Action接口<br /> 不过最常用的是从ActionSupport继承,好处在于可以直接使用Struts2封装好的方法<br /> </body> </html>

本文参与?腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2011-07-30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体同步曝光计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com