struts2零配置 2.关于Action的配置初尝试和annotation的struts2常量

本文介绍了Struts2中Action的注解配置方法,包括@ParentPackage、@Namespace、@Action和@Result的使用。在配置过程中,遇到404错误,通过在WEB-INF/content目录下创建jsp页面解决问题。还探讨了Struts2的默认结果路径及如何更改,以及哪些包名会被自动解析为Action配置。最后提到了包注释匹配的规则,并计划进一步研究Action的详细配置。

2.关于Action的配置

配置到底是什么包中的文件的注释会被注解分析器分析成配置呢?

这里需要加入asm-commons.jar asm-tree.jar 后面的包没有试需要不需要!但是看名字好像不需要!

创建包: com.oa.www.action;

import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;

import com.opensymphony.xwork2.ActionSupport;

@ParentPackage("struts-default")
@Namespace("/")
public class LoginAction extends ActionSupport {

	@Action(value="login",results={@Result(name="success",location="success.jsp")
					,@Result(name="input",location="input.jsp")})
	public String execute(){
		return SUCCESS;
	}
}

一个简单的例子 这里先理解一下每个注解什么意思!

@ParentPackage 里面是struts-default 相当于 xml 中extends=“struts-default” 下面是此注解的源代码

@Target({ElementType.TYPE, ElementType.PACKAGE})
@Retention(value = RetentionPolicy.RUNTIME)
public @interface ParentPackage {
    /**
     * @return  The parent package.
     */
    String value();
}
说明了它是用来设置父包的 并且这个注释只能用在固定的类型上 

@Namesapce 相当于 xml中的 namespace=“/”

和上面的ParentPackage大致相同

@Action value的意思是你对应的login 相当与name = login 

@Result也类型 xml中的name,location相当于result中指定的页面的url

运行 一下看看结果:


404 没有找到页面 

/sa/WEB-INF/content/success.jsp 这个位置的页面没有找到

好吧! 先不管什么原因,先在web-inf中建立content并拷贝jsp放入文件夹中!再次运行,可以得到页面了!

为什么会再那里呢?

1.问题一:默认结果路径

查看bowser中的默认配置常量

struts.convention.result.path : /WEB-INF/content/

默认的结果路径是这里 想改变可以有几种方法 

1.这个可以通过在struts.xml中覆盖它,

2.可以修改源文件,

3.在location的路径前面加上绝对路径"/".

经过尝试 这几种方法都是可行的!

2.问题二:都是什么样的包注释会主动解析

上面的列子会主动解析的 

但是换了包名的话:例如 www; 试一试  错误了 

struts.convention.package.locators=action,actions,struts,struts2

这里说包里面要是包含了这4个字符串 就会被搜索匹配到!至于修改方式 可以参考上面问题的前两种!

 晚上搞搞哪个Action的详细配置试试!呆着也是呆着!大笑

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值