struts中采用注解配置Action

 

需要导入struts2-convention-plugin的jar包

 

Action

 

省略getters和setters

@ParentPackage("xystruts-default")
@Namespace("/login")
public class LoginAction extends BaseAction
{
 private String verifyCode;

 

 @Action(value = "login", results = { @Result(location = "/pages/main.jsp"), @Result(name = "login", location = "/pages/login.jsp") })
 public String login()
 {
  String sysVerifyCode = (String) getSession().get("verifyCode");
  if (StringHelper.isEmpty(verifyCode) || !sysVerifyCode.equalsIgnoreCase(verifyCode))
  {
   addActionError("验证码错误");
   return "login";
  }
  return "success";
 }

 

 @Action(value = "logout", results = { @Result(location = "/pages/login.jsp") })
 public String logout()
 {
  Map session = getSession();
  if (session != null)
   session.clear();
  return "success";
 }

}

 

 

JSP

<form action="login/login.action"></form>

<a href="login/logout.action">登出</a>

其中Result注解中name属性为空,表示默认为"success"

 

 

常用注解如下

Namespace:指定命名空间

ParentPackage:指定父包

Result:提供了Action结果的映射(一个结果的映射)

Results:Result注解列表

ResultPath:指定结果页面的基路径

Action:指定Action的访问URL

Actions:Action注解列表

ExceptionMapping:指定异常映射(映射一个声明异常)

ExceptionMappings:一级声明异常的数组

InterceptorRef:拦截器引用

InterceptorRefs:拦截器引用组

 

 

时间: 2024-09-15 09:02:23

struts中采用注解配置Action的相关文章

在Struts中对用户输入信息的校验方法对比:validate 和validator

在Struts中对用户输入信息的校验一般在FromBean中进行(除非需要访问数据库进行诸如登录信息的校验,因为这是Action的工作),本文将阐述如何在Struts中实现可配置的信息校验. 一.在FormBean中手工实现 最简单的方法是直接在FormBean中重写ActionForm类的validate方法,validate方法签名如下: public ActionErrors validate(ActionMapping mapping, HttpServletRequest req) 比

在Struts中,如何实现在一个DispatchAction的不同方法中分别使用不同的actionform? 在线等了....

问题描述 如题 解决方案 解决方案二:struts2里面action的配置在Action中实现多个方法在配置文件中中通过配置Acrion的method属性来实现dispatch的效果以前的学习日志,你看下吧在struts1.x中,可以继承DispatchAction类实现在一个action中处理多个业务逻辑,在struts2中同样可以实现,如下:假如在一个action中有两个业务逻辑分别为update和delete1.修改struts.xml文件,配置action如下:<actionname=&qu

详解在Java的Struts2框架中配置Action的方法_java

在Struts2中Action部分,也就是Controller层采用了低侵入的方式.为什么这么说?这是因为在Struts2中action类并不需要继承任何的基类,或实现任何的接口,更没有与Servlet的API直接耦合.它通常更像一个普通的POJO(通常应该包含一个无参数的execute方法),而且可以在内容定义一系列的方法(无参方法),并可以通过配置的方式,把每一个方法都当作一个独立的action来使用,从而实现代码复用. 例如: package example; public class U

Struts 2中的constant配置详解_java

1.<constant name="struts.i18n.encoding" value="UTF-8" /> 指定Web应用的默认编码集,相当于调用 HttpServletRequest的setCharacterEncoding方法. 2.<constant name="struts.i18n.reload" value="false"/> 该属性设置是否每次HTTP请求到达时,系统都重新加载资源文

Struts中的Action类的工作机制

Struts中的Action类的工作机制  所有的Action类都是org.apache.struts.action.Action的子类.Action子类应该覆写父类的execute()方法.当ActionForm Bean被创建,并且表单验证顺利通过后,Struts框架就会调用Action类的execute()方法.execute()方法的定义如下:    public ActionForward execute(ActionMapping mapping                   

Struts中不同的Action和ActionForm组合

在TSS.com上看到一篇好文,有关Struts使用中各种不同的Action和ActionForm组合的利弊.我先消化一下,整理好,供大家参考.原文标题:Struts action mappings: Divide Et Impera,作者:Michael Juravlev.在TSS上的URL:http://www.theserverside.com/articles/article.tss?l=StrutsActionMapping 说明:阅读本文需要一定的Struts基础.注:文中小写的ac

mysql-struts2中数据库连接池采用Context配置的错误

问题描述 struts2中数据库连接池采用Context配置的错误 action中的execute方法: public String execute() throws SQLException{ us=new user(); usDao=new userDao(); us=usDao.register(); return SUCCESS; } 解决方案 用文件存储链接信息是挺烦人的,老出错,不知道是不是不支持的问题,关注解决办法....

Struts中JSP到Action过程中数组的投射

Jsp <div>     <input type="hidden" name="stulst.name" value="xy"/>     <input type="hidden" name="stulst.name" value="xy1"/>     <input type="hidden" name="stu

在使用spring的过程中,service层写在配置文件中好呢还是注解配置好呢?

问题描述 在使用spring的过程中,service层写在配置文件中好呢还是注解配置好呢? 在使用spring的过程中,service层写在配置文件中好呢还是注解配置好呢?在配置文件中是这样的注解配置时这样的@Service(""userService"")说说理由哦. 解决方案 一般应用性开发使用注解就可以.它较xml配置方式的优势在于省去了xml复杂的配置,而且不需要维护两套内容(xml配置方式需要维护service类和xml文件).但是如果需要修改相关内容,注