创建多个动作:

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

让我们一起进入一个“SECRET”的话,你应该看到下面的页面:

现在输入任何文字以外的“SECRET”,你应该看到下面的页面:

创建多个动作:

我们通常会定义一个以上的行动,以处理不同的请求,向用户提供不同的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 。为了解决这个问题,我们建议您创建一个类,它包含的结果的结果。

Struts 2 拦截器:

拦截器是作为Servlet过滤器或JDK的Proxy类的概念上是相同的。拦截器允许横切功能单独实现动作以及框架。想要使用拦截器,可以实现如下:

  • Providing preprocessing logic before the action is called.
  • Providing postprocessing logic after the action is called.
  • Catching exceptions so that alternate processing can be performed.

使用拦截器在Struts2框架提供的功能很多,例如包括异常处理,文件上传,生命周期回调和验证等。事实上,Struts2的基地很多其拦截功能上,这不是不可能有7或8每个动作拦截分配。

原文地址:https://www.cnblogs.com/borter/p/9502142.html

时间: 2024-11-01 14:37:40

创建多个动作:的相关文章

【转】如何监控某个驱动器或目录及其下面的所有子目录的创建文件的动作

1.如何监控某个驱动器或目录及其下面的所有子目录的创建文件的动作 http://m.codes51.com/wd/2535822.html 2.我的代码:(Form1,Button1,Mome1) unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, shlobj, Activex; const SHCNE_R

3dmax使用K帧工具创建一个行走动作

第一步,创建一个biped骨骼. 这个就不截图了,因为基本都会. 记住一点,先改变了关键点再去修改,不然修改的是前一个关键帧的动作. 第二步,开启自动关键帧,然后给初始位置双脚添加踩踏关键点.设置关键点后,角色就只能在平面上进行移动. 设置踩踏关键帧后,时间轴上面的会变成黄色. 第三步:然后开始在第15帧的时候设置右脚的动作,变成踩踏关键帧的时候,左脚就设置为自由关键帧.然后移动角色中心向前移动. 第四步:然后再20帧的时候,右脚为只有关键帧,左脚为踩踏关键帧,移动角色向前移动就可以实现走动了.

拦截鼠标双击创建进程的动作

0 前言 最近公司要写一个监控explorer创建进程的东西, 所以花了点时间研究了以下, 然后有了以下的成果 1 思路 <1>核心思想: 注入dll, hook创建进程的底层函数, 实现创建创建进程的拦截 <2>需要注入的进程 经研究发现在开启UAC的情况下, 创建受限权限进程的动作是在explorer中由CreateProcessW这个函数执行的. 创建管理员权限的进程却是explorer委托appinfo服务创建, 然后将父进程的pid设置为explorer完成, 执行函数是

创建zabbix告警动作时报错

现象:配置zabbix告警动作时,出现以下错误:Error in query [INSERT INTO auditlog (userid,clock,ip,action,resourcetype,details,auditid) VALUES ('1','1562247337','123.155.146.109','0','5','名称: gaojing','1018')] [Incorrect string value: '\xE5\x90\x8D\xE7\xA7\xB0...' for co

java设计模式--创建型模式

2016-04-24 10:10:34 创建型模式:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式 注意:工厂模式可以分为三类: 1)简单工厂模式(Simple Factory) 2)工厂方法模式(Factory Method) 3)抽象工厂模式(Abstract Factory)  这三种模式从上到下逐步抽象,并且更具一般性.GOF在<设计模式>一书中将工厂模式分为两类:工厂方法模式(Factory Method)与抽象工厂模式(Abstract Factory).将简单工厂模式

Quick cocos2dx-Lua(V3.3R1)学习笔记(七)---- 让精灵执行不同的动作

上一篇我们实现了精灵动画,但是人物动起来了,位置还在中央,这怎么能行呢,除非他在玩太空步,一步两步一步两步 一步一步似爪牙似魔鬼的步伐......摩擦摩擦在这光滑的地上摩擦摩擦 我们打开安装路劲:\quick-3.3rc1\docs\api下面的transition.html,这次我们就用文档介绍的函数让进精灵执行动作 下面我们就让精灵从做走到右边 我们看transition.exectue(target, action, args)这个函数,中间就是我们创建的动作 function MainS

[转]iOS学习笔记(2)--Xcode6.1创建仅xib文件无storyboard的hello world应用

转载地址:http://www.mamicode.com/info-detail-514151.html 由于Xcode6之后,默认创建storyboard而非xib文件,而作为初学,了解xib的加载原理很重要,所以,需要创建一个没有storyboard的项目 1. 创建一个新的工程 2. 选择仅一个视图的模板 选择 Single View Application , 点击Next 3. 填写项目信息 不需要选择core data,填好信息后,点击next,然后点击create 4. 删除sto

iOS学习笔记(2)--Xcode6.1创建仅xib文件无storyboard的hello world应用

---恢复内容开始--- 由于Xcode6之后,默认创建storyboard而非xib文件,而作为初学,了解xib的加载原理很重要,所以,需要创建一个没有storyboard的项目 1. 创建一个新的工程 2. 选择仅一个视图的模板 选择 Single View Application , 点击Next 3. 填写项目信息 不需要选择core data,填好信息后,点击next,然后点击create 4. 删除storyboard和launchscreen.xib文件 将storyboard和l

动作展示《一》

由于Cocos2d-X中的动作较多,我将所有的动作制作成了一个滚动视图,每个滚动视图上都有动作名,单击滚动视图就可以展示相应的动作 程序效果图: 使用滚动视图实现动作切换 动作展示 程序代码: 首先创建一个ActionShow类 在ActionShow.h中的代码 #ifndef _ActionShow_H_ #define _ActionShow_H_ #include "cocos2d.h" #include "cocos-ext.h" USING_NS_CC;