<i id="whxwp"><option id="whxwp"><listing id="whxwp"></listing></option></i>
    <i id="whxwp"><option id="whxwp"><listing id="whxwp"></listing></option></i>

    <i id="whxwp"><option id="whxwp"></option></i>

    <delect id="whxwp"><rp id="whxwp"><big id="whxwp"></big></rp></delect>

      <i id="whxwp"><option id="whxwp"><listing id="whxwp"></listing></option></i>

      <i id="whxwp"><option id="whxwp"><listing id="whxwp"></listing></option></i>

        Struts2 Action/动作

        动作是Struts2框架的核心,因为他们的任何MVC(模型 - 视图 - 控制器)框架。每个URL将被映射到一个特定的动作,它提供了来自用户的请求提供服务所需的处理逻辑。

        但动作也提供其他两个重要的能力。首先,操作从请求数据的传输中起着重要的作用,通过向视图,无论是一个JSP或其它类型的结果。二,动作必须协助的框架,在确定结果应该渲染视图,在响应该请求将被退回。

        创建动作:

        在Struts2的动作,唯一的要求是必须有一个无参数的方法返回String或结果的对象,必须是一个POJO。如果不带参数的方法是不指定,则默认动作是使用execute()方法。

        也可以选择扩展ActionSupport类实现了6个接口,包括动作界面。动作界面如下:

        public interface Action { public static final String SUCCESS = "success"; public static final String NONE = "none"; public static final String ERROR = "error"; public static final String INPUT = "input"; public static final String LOGIN = "login"; public String execute() throws Exception; }

        让我们来看看Hello World示例的操作方法:

        package com.yiibai.struts2; public class HelloWorldAction{ private String name; public String execute() throws Exception { return "success"; } public String getName() { return name; } public void setName(String name) { this.name = name; } }

        为了说明这一点,操作方法控制视图,让我们做出以下更改执行方法和扩展类ActionSupport 如下:

        package com.yiibai.struts2; import com.opensymphony.xwork2.ActionSupport; public class HelloWorldAction extends ActionSupport{ private String name; public String execute() throws Exception { if ("SECRET".equals(name)) { return SUCCESS; }else{ return ERROR; } } public String getName() { return name; } public void setName(String name) { this.name = name; } }

        在这个例子中,我们有一些在execute方法的逻辑来看待的name属性。如果属性等于字符串“SECRET”,我们返回SUCCESS 的结果,否则我们返回ERROR 的结果。因为我们已经扩展ActionSupport,所以我们可以使用字符串常量的成功和错误。现在,让我们修改我们的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="helloworld" extends="struts-default"> <action name="hello" class="com.yiibai.struts2.HelloWorldAction" method="execute"> <result name="success">/HelloWorld.jsp</result> <result name="error">/AccessDenied.jsp</result> </action> </package> </struts>

        创建视图

        让我们创建以下JSP文件 helloWorld.jsp 的WebContent文件夹在eclipse项目。要做到这一点,右键单击WebContent文件夹在项目资源管理器,选择New >JSP File。该文件将要求返回的结果是SUCCESS,这是一个字符串常量“success”的定义在动作界面:

        <%@ page contentType="text/html; charset=UTF-8" %> <%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> <title>Hello World</title> </head> <body> Hello World, <s:property value="name"/> </body> </html>

        以下是由框架的动作的结果将被调用的文件,该文件是等于字符串常量“错误”的ERROR 。以下是AccessDenied.jsp 的内容

        <%@ page contentType="text/html; charset=UTF-8" %> <%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> <title>Access Denied</title> </head> <body> You are not authorized to view this page. </body> </html>

        我们还需要在WebContent文件夹中创建index.jsp。该文件将作为初始动作URL,用户可以直接点击告诉Struts 2框架调用HelloWorldAction类的 execute方法,并呈现 helloWorld.jsp视图。

        <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ taglib prefix="s" uri="/struts-tags"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Hello World</title> </head> <body> <h1>Hello World From Struts2</h1> <form action="hello"> <label for="name">Please enter your name</label><br/> <input type="text" name="name"/> <input type="submit" value="Say Hello"/> </form> </body> </html>

        就是这样,不需要改变的web.xml文件,所以让我们用同一个web.xml,是之前我们已经创建了范例章。现在,我们已经准备好运行使用Struts 2框架的 Hello World应用程序。

        执行应用程序

        右键点击项目名称,并单击 Export > WAR File 创建一个WAR文件。然后在Tomcat 的webapps目录下部署这个WAR。最后,启动Tomcat服务器和尝试访问URL http://localhost:8080/HelloWorldStruts2/index.jsp。这会给出以下画面:

        Hello World Input

        让我们为“SECRET”,并输入一个字,应该看到以下页面:

        Success Result

        现在输入任何单词而非“SECRET”,应该看到以下页面: 

        Access Denied Result

        建立多个动作:

        经常会定义一个以上的动作,以处理不同的请求,并提供不同的用户的URL,因此可以定义不同的类定义如下:

        package com.yiibai.struts2; import com.opensymphony.xwork2.ActionSupport; class MyAction extends ActionSupport{ public static String GOOD = SUCCESS; public static String BAD = ERROR; } public class HelloWorld extends ActionSupport{ ... public String execute() { if ("SECRET".equals(name)) return MyAction.GOOD; return MyAction.BAD; } ... } public class SomeOtherClass extends ActionSupport{ ... public String execute() { return MyAction.GOOD; } ... }

        在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="helloworld" extends="struts-default"> <action name="hello" class="com.yiibai.struts2.HelloWorld" method="execute"> <result name="success">/HelloWorld.jsp</result> <result name="error">/AccessDenied.jsp</result> </action> <action name="something" class="com.yiibai.struts2.SomeOtherClass" method="execute"> <result name="success">/Something.jsp</result> <result name="error">/AccessDenied.jsp</result> </action> </package> </struts>

        正如看到在上述假设的例子,动作的结果是重复的SUCCESS和ERROR。要解决这个问题,建议创建一个类包含结果的结果。

        相关文章
        相关标签/搜索
        三期內必开一肖 阳曲县| 沭阳县| 龙海市| 嘉峪关市| 公安县| 班戈县| 梨树县| 灵石县| 武山县| 汾西县| 西贡区| 昭通市| 会理县| 临安市| 嘉兴市| 和龙市| 乳山市| 孝义市| 报价| 镶黄旗| 漠河县| 于都县| 利辛县| 温宿县| 龙门县| 湖州市| 天柱县| 穆棱市| 夏邑县| 新竹市| 页游| 内丘县| 健康| 清涧县| 佛学| 九龙县| 晴隆县| 靖西县| 含山县| 丘北县| 石楼县| 梁河县| 高邑县| 盐亭县| 马龙县| 博白县| 大埔县| 安化县| 甘洛县| 兴仁县| 龙里县| 金门县| 晋州市| 南皮县| 茌平县| 咸阳市| 湖州市| 牟定县| 仁布县| 白河县| 嫩江县| 蒲江县| 镇远县| 封丘县| 宁乡县| 上犹县| 迁西县| 长沙市| 建瓯市| 新竹市| 天台县| 高平市| 南郑县| 闽清县| 万州区| 巴塘县| 特克斯县| 常宁市| 巫山县| 那曲县| 隆子县| 博兴县| 宝山区| 宝清县| 安泽县| 南召县| 威宁| 高安市| 格尔木市| 吉首市| 中方县| 长沙市| 黄梅县| 西畴县| 惠来县| 靖西县| 南靖县| 丹阳市| 黄骅市| 武隆县| 缙云县| 云南省| 苏尼特左旗| 高尔夫| 长泰县| 潢川县| 威海市| 嘉鱼县| 嘉黎县| 岐山县| 蒙阴县| 久治县| 云浮市| 泸溪县| 舒兰市| 平利县| 昌吉市| 永定县| 拜城县| 基隆市| 明星| 扎鲁特旗| 钟山县| 盱眙县| 建昌县| 邹平县| 高安市| 洛川县| 五华县| 梅州市| 沭阳县| 托里县| 营山县| 睢宁县| 普宁市| 新丰县| 威远县| 徐水县| 西华县| 博罗县| 桂东县| 广元市| 郁南县| 大悟县| 都匀市| 海林市| 千阳县| 宿迁市| 儋州市| 安吉县| 荣昌县| 东城区| 宜阳县| 枣强县| 徐水县| 镇宁| 八宿县| 江北区| 绥棱县| 板桥市| 桂平市| 邵阳县| 洪江市| 伊宁市| 苍南县| 大港区| 万源市| 布尔津县| 罗甸县| 乳源| 锡林浩特市| 肇东市| 丰宁| 高邑县| 平顺县| 元朗区| 南部县| 家居| 青河县| 资中县| 镶黄旗| 贵阳市| 当雄县| 吴忠市| 上杭县| 嘉峪关市| 县级市| 江口县| 林周县| 牟定县| 宁南县| 阳曲县| 镇巴县| 横峰县| 临湘市| 凤城市| 德庆县| 邳州市| 靖远县| 龙游县| 古蔺县| 平陆县| 义马市| 雅江县| 怀化市| 昭平县| 北碚区| 社旗县| 太湖县| 英超| 南昌市| 卢湾区| 西青区| 宁强县| 天长市| 桑植县| 德钦县| 同仁县| 盖州市| 宝丰县| 安多县| 临汾市| 襄汾县| 刚察县| 宁强县| 东乌| 茌平县| 琼中| 彰化市| 金湖县| 西城区| 锦屏县| 昌乐县| 绩溪县| 岳池县| 宜州市| 通许县| 长葛市| 江永县| 亳州市| 宜阳县| 长垣县| 古田县| 涞水县| 绿春县| 常宁市| 于都县| 呼图壁县| 高清| 禹州市| 灵山县| 博白县| 安康市| 延川县| 陇西县| 元朗区| 佛学| 桐城市| 黄山市| 成安县| 防城港市| 岑溪市| 永宁县| 青州市| 和龙市| 高雄市| 随州市| 安康市| 治多县| 和政县| 东丽区| 铁岭市| 张家口市| 宜阳县| 唐海县| 福泉市| 新兴县| 绥棱县| 区。| 水城县| 武乡县| 西平县| 盐池县| 湖南省| 开远市| 安多县| 岗巴县| 巴南区| 罗田县| 荥阳市| 宜章县| 永川市| 卢氏县| 忻州市| 安塞县| 九龙坡区| 阿瓦提县| 鄂伦春自治旗| 清涧县| 泗水县| 库尔勒市| 商南县| 阳曲县| 德阳市| 娱乐| 泰安市| 儋州市| 台山市| 浏阳市| 南城县| 鄂尔多斯市| 黔西| 肥西县| 嘉义县| 巴塘县| 焦作市| 仙居县| 浦县| 从化市| 佛坪县| 玉环县| 九龙县| 玛曲县| 安徽省| 浮梁县| 茌平县| 建昌县| 锡林郭勒盟| 龙山县| 阜阳市| 阿城市| 东乡| 平定县| 开江县| 建宁县| 夏河县| 临湘市| 正定县| 通城县| 武威市| 呼图壁县| 易门县| 永仁县| 保康县| 马山县| 深圳市| 武冈市| 英山县| 亳州市| 偏关县| 云浮市| 青浦区| 黔南| 虎林市| 道真| 黑龙江省| 屯昌县| 五寨县| 广丰县| 城口县| 游戏| 凤冈县| 花垣县| 陆川县| 萨嘎县| 灵台县| 区。| 南陵县| 多伦县| 亚东县| 湖北省| 颍上县| 阿拉善右旗| 册亨县| 沙河市| 泰和县| 通江县| 金塔县| 寿阳县| 德庆县| 札达县| 定日县| 光山县| 大厂| 万州区| 金乡县| 海兴县| 马尔康县| 望都县| 达州市| 汪清县| 桂平市| 榆树市| 郴州市| 邢台市| 连平县| 玉田县| 方山县| 靖州| 水富县| 德钦县| 江口县| 仁布县| 双柏县| 大冶市| 台州市| 二手房| 资阳市| 平舆县| 清水河县| 内丘县| 许昌市| 庆阳市| 四平市| 泽州县| 南京市| 奉贤区| 郑州市| 屯昌县| 比如县| 莫力| 资兴市| 克什克腾旗| 海门市| 宾川县| 馆陶县| 常德市| 白银市| 九江县| 贵阳市| 永年县| 云和县| 自治县| 财经| 张家川| 宁国市| 泰来县| 平安县| 平凉市| 衡水市| 彰武县| 酉阳| 怀宁县| 和静县| 滨州市| 麦盖提县| 高邑县| 喀喇沁旗| 喜德县| 宣化县| 登封市| 湛江市| 安远县| 永修县| 麻城市| 策勒县| 赣榆县| 天长市| 白城市| 黄骅市| 信阳市| 德兴市| 柳河县| 通道| 湖南省| 申扎县| 萍乡市| 延安市| 霍州市| 翁牛特旗| 健康| 定日县| 琼结县| 碌曲县| 龙胜| 衡东县| 湖北省| 闽清县| 三原县| 凤阳县| 喀喇沁旗| 渭南市| 沭阳县| 工布江达县| 浦北县| 沁源县| 全南县| 湘潭县| 丁青县| 浑源县| 沁源县| 天镇县| 五大连池市| 郧西县| 鄂托克前旗| 玉田县| 拉孜县| 屯昌县| 郧西县| 大石桥市| 庆阳市| 肇源县| 通城县| 汾西县| 白水县| 高密市| 天水市| 修武县| 台中县| 金平| http://m.jp1860careo.fun http://jp1860connecto.fun http://bbs.jp1860risko.fun http://3g.jp1860resulto.fun http://wap.jp1860goo.fun http://www.jp1860sendo.fun http://jp1860buildo.fun http://m.jp1860chanceo.fun http://jp1860senseo.fun http://3g.jp1860zoutho.fun http://m.jp1860returno.fun http://www.jp1860bino.fun http://3g.jp1860tradeo.fun http://wap.jp1860contrasto.fun http://m.jp1860churcho.fun