论坛首页 Java企业应用论坛

web项目配置映射方案

浏览 2590 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-10-19   最后修改:2012-10-19
解析一下题目吧,我的目的想要实现这样的一个功能

当我访问"http://localhost:8080/test/aa.action"时,自动匹配到struts.xml文件,里面的方法<action name="aa" class="xxxxx"><result name="success">/success.jsp</result></action>跳转到success.jsp页面

当我访问"http://localhost:8080/test/aa.do"时(或自定义后缀名.json),自动匹配到另一个struts文件,例如(struts-json.xml),里面的方法<action name="aa" class="xxxxxx"><result name="success" type="json"></result></action>,返回json数据



如何根据访问url的后缀不同匹配不同的struts.xml?(例如:访问"aa.action"匹配struts.xml,访问"aa.do"匹配struts-json.xml)


简单一句话就是,访问"aa.action"返回jsp页面,访问"aa.do"返回json数据
**访问的名字要相同都是aa

大神们,怎样实现??或者说有这样子实现的可能吗??
   发表时间:2012-10-21   最后修改:2012-10-21
不需要多个action定义,就一个action定义即可。

开发一个拦截器,获取请求的后缀,然后对action返回的结果进行处理
0 请登录后投票
   发表时间:2012-10-22  
我建议是,用struts2自定义返回类型处理。
比如你的访问路径
http://localhost:8080/test/aa.action

http://localhost:8080/test/aa.do
差别只在后缀上,没有必要再次写一个struts.xml,可以自定义一个jsonResult返回类型。
<action name="login" class="base.web.actions.base.login.LoginAction"
				method="login">
			<result name="success" type="jsonResult"></result>
            <result name="dispatcher" type="dispatcher">/miniui/base/login/base_login.jsp</result>
		</action>

Action方法:
public String index() {
        //getResult();这个方法可以判断访问路径的后缀 action  Or do
        //当然这个方法体内,具体的处理,action是什么处理,do是什么处理
        return getResult();
    }

自定义返回类型
<result-types>
            <result-type name="jsonGrid" class="base.web.tools.result.JsonUrlResult"/>
            <result-type name="jsonResult" class="base.web.tools.result.JsonResult"/>
        </result-types>
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics