随笔-95  评论-31  文章-10  trackbacks-0

1、web.xml里面不能设置为*.do struts2已经废除.do后缀名,否则无论怎样都访问不到页面404错
struts.xml文件内容如下:

 1<?xml version="1.0" encoding="UTF-8" ?>
 2<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
 3<struts>
 4    <constant name="struts.convention.default.parent.package"
 5        value="crud-default" />
 6        <!-- value值表示扫描那个包名,这里为actions -->
 7    <constant name="struts.convention.package.locators" value="actions" />
 8
 9    <!-- 用于CRUD Action的parent package -->

10    <package name="crud-default" extends="convention-default">
11        <!-- 基于paramsPrepareParamsStack,
12            增加store interceptor保证actionMessage在redirect后不会丢失 -->

13        <interceptors>
14            <interceptor-stack name="crudStack">
15                <interceptor-ref name="store">
16                    <param name="operationMode">AUTOMATIC</param>
17                </interceptor-ref>
18                <interceptor-ref name="paramsPrepareParamsStack" />
19            </interceptor-stack>
20        </interceptors>
21        <default-interceptor-ref name="crudStack" />
22    </package>
23
24    <!--
 
25
        使用Convention插件,实现约定大于配置的零配置文件风格.
26
        特殊的Result路径在Action类中使用@Result设定. 
27    -->

28    
29</struts>
    
30

31

2、如果在类上面注解比如(假如包含两个方法,并且要返回视图,如果不需要返回视图这里即可不用填写任何注解):
@ResultPath("/WEB-INF/jsp")
@Results( {
  @Result(name = "success", location = "Poc_test.jsp", type = "dispatcher"),
  @Result(name="success",location="Poc_test.jsp",type="dispatcher")})
public class XdsAction extends ActionSupport implements ModelDriven<Ris>{
......
}
那么页面进行访问的链接要按照如下约定:(方法名字即为页面要访问的url)
http://localhost:8080/web/xds!方法名
里面的xds表示类名字,如果类名为XdsAction那么要去掉Action并且将首写字母小写然后进行访问

2、如果在方法上面注解:
 @Action(value="/welcome",results={@Result(location="/WEB-INF/jsp/Poc_test.jsp",type="dispatcher",name="success")})
 public String welcome(){
  return "success";
 }
页面上直接访问http://localhost:8080/web/welcome即可

进行模块化开发便于统一管理,建议使用类上面注解的方式,方法名即为页面访问名字

3、使用struts2后通过request.getInputStream()方法获取的InputStream流无法获取HTTP请求正文,这是因为struts2拦截器进行了拦截,并且request的content-type设置成了application/x-www-form-urlencoded,在struts2中要求对content-type进行设置,改成text/html即可。如果单纯使用servlet则没有这种限制。

posted on 2011-03-28 21:05 朔望魔刃 阅读(5388) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: