struts2知识点

 一、struts.xml配置文件

1、package相当于java类中的package,为了区分package中action重名的情况

2、namespace:namespace决定了action的访问路径,默认为"",可以接收所有路径的action。namespace可以写为/,或者/xxx,或者/xxx/yyy,对应的action访问路径为/index.action,/xxx/index.action,或者/xxx/yyy/index.action。namespace最好也用模块来进行命名

3、result中凡是name为“success”时都可以不写,也就是说,凡是result的name为空的话都是success。

4、action:具体视图的返回可以由用户自己定义的Action来决定。具体的手段是根据返回的字符串找到对应的配置项,来决定视图的内容。具体Action的实现可以是一个普通的java类,里面有public String execute方法即可,或者实现Action接口。不过最常用的是从ActionSupport继承,好处在于可以直接使用Struts2封装好的方法

5、当在action中没有配class时,默认执行的是struts自带的ActionSupport类

6、默认action:<default-action-ref name="index"></default-action-ref>

7、result类型:dispatcher(默认,运用服务器跳转到页面(forword))、redirect(客户端跳转到视图)、chain(服务器跳转到action)、redirectAction(客户端跳转到action)、freemarker、httpheader、stream(用于下载)、velocity、xslt、plaintext、tiles。

 

二、path路径问题的说明:struts2中的路径问题是根据action的路径而不是jsp路径来确定,所以尽量不要使用相对路径。<a href="index.jsp">index.jsp</a>虽然可以用redirect方式解决,但redirect方式并非必要。解决办法非常简单,统一使用绝对路径。(在jsp中用request.getContextRoot方式来拿到webapp的路径)或者使用myeclipse经常用的,指定basePath,如:<%=basePath%>index.jsp。(在JSP中,“/”代表整个站点根路径

 

三、动态方法调用:Action执行的时候并不一定要执行execute方法,可以在配置文件中配置Action的时候用method=来指定执行哪个方法,也可以在url地址中动态指定(动态方法调用DMI)(推荐)<a href="<%=context %>/user/userAdd">添加用户</a>a href="<%=context %>/user/user!add">添加用户</a>前者会产生太多的action,所以不推荐使用

 

四、action接收参数:①在URL传递的参数和Action中的成员变量可以是一一对应的,这主要是因为URL传过来的参数值赋给了action类中的set***()方法,也就是说,不管成员变量是否与参数相同,只要set***()中的“***”与参数相同即可。②使用DomailModel(域模型),即在URL传递的参数之前跟上DomailModel的名字(实体类名)。③ModelDriven接受参数,即实现ModelDriven<类名>接口,并重写getModel()方法,但是,此时的实体类的对象要通过自己new出来,因为,struts不会帮你new啦。其中,最常用的为第二种。

 

五、中文问题:正常情况下,在struts的配置文件中加入<constant name="struts.i18n.encoding" value="GBK" /> <!-- internationalization -->即可。如果不行,可以在web.xml中在添加一个filter。

 

六、简单数据校验:①校验不成功,可通过this.addFieldError(key,value)传递参数,其中,key为action中的成员属性名。然后在JSP中通过<s:fielderror fieldName="name" theme="simple">进行显示,其中“s”为struts标签的别名。可通过<%@ taglib uri="/struts-tags" prefix="s" %>进行设置。struts的标签位于struts2-core-2.2.3.jar中的META-INF下的maven中。当然,你也可以在JSP文件中通过<s:debug></s:debug>来测试本文件。

 

 

更新中……

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值