浏览 4585 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2006-08-05
class="ViewAddClassInfoAction"> <result name="success" type="dispatcher"> <param name="location"> /admin/class/add_class.jsp </param> </result> </action> <action name="viewclasslist" class="ViewClassInfoListAction"> <result name="success" type="dispatcher"> <param name="location"> /admin/class/manager_class.jsp </param> </result> </action> <action name="addclass" class="AddClassInfoAction"> <interceptor-ref name="fileUpload"/> <interceptor-ref name="model-driven" /> <interceptor-ref name="params" /> <result name="success" type="redirect"> <param name="location"> /admin/class/viewclasslist.action </param> </result> <result name="formerror" type="dispatcher"> <param name="location"> /admin/class/viewaddclass.action </param> </result> </action> 在AddClassInfoAction中如果遇到错误就转发到/admin/class/viewaddclass.action,这样会抛出找不到该页的异常,异常如下 HTTP Status 404 - /jwnews/admin/class/viewaddclass.action -------------------------------------------------------------------------------- type Status report message /jwnews/admin/class/viewaddclass.action description The requested resource (/jwnews/admin/class/viewaddclass.action) is not available. 如果重定向就好使. 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2006-08-05
用redirect-action
|
|
返回顶楼 | |
发表时间:2006-08-06
redirect-action是重定向,用这个取不出在action保存到request里的值
|
|
返回顶楼 | |
发表时间:2006-08-06
chain拦截器,不过这个不会改变URL
|
|
返回顶楼 | |
发表时间:2006-08-07
你的location参数里不能加/ 的,那样是根目录,你的webapp是子目录的,就会找不到了。
|
|
返回顶楼 | |
发表时间:2006-08-07
龙泽风 写道 <action name="viewaddclass"
class="ViewAddClassInfoAction"> <result name="success" type="dispatcher"> <param name="location"> /admin/class/add_class.jsp </param> </result> </action> <action name="viewclasslist" class="ViewClassInfoListAction"> <result name="success" type="dispatcher"> <param name="location"> /admin/class/manager_class.jsp </param> </result> </action> <action name="addclass" class="AddClassInfoAction"> <interceptor-ref name="fileUpload"/> <interceptor-ref name="model-driven" /> <interceptor-ref name="params" /> <result name="success" type="redirect"> <param name="location"> /admin/class/viewclasslist.action </param> </result> <result name="formerror" type="dispatcher"> <param name="location"> /admin/class/viewaddclass.action </param> </result> </action> 在AddClassInfoAction中如果遇到错误就转发到/admin/class/viewaddclass.action,这样会抛出找不到该页的异常,异常如下 HTTP Status 404 - /jwnews/admin/class/viewaddclass.action -------------------------------------------------------------------------------- type Status report message /jwnews/admin/class/viewaddclass.action description The requested resource (/jwnews/admin/class/viewaddclass.action) is not available. 如果重定向就好使. 看过了你冗长的配置之后,觉得你还没有领略WebWork设计的精华: 首先,“dispatcher”结果类型是转发到JSP页面,location参数的意义就是JSP页面的位置(相对或者绝对[相对于站点根目录]),类似地,“freemarker”结果类型是转发到FTL模板页面,等等,所以,你的配置有问题,改正如下: ……………… <result name="formerror" type="dispatcher"> <param name="location">/admin/class/add_class.jsp</param> </result> ……………… 如果location是唯一的一个参数,可以简写为: ……………… <result name="formerror" type="dispatcher">admin/class/add_class.jsp</result> ……………… 还有我不清楚,你为什么要自定义结果类型名:formerror,Action接口中有 ERROR = "error"; INPUT ="input"; 这些你可以直接用的啊? type="dispatcher"也是默认的结果类型,你也可以省略(当然你可以定义其他的为默认结果类型)。 我不提倡每个功能方法用一个Action来实现,这样Action会很多,你可以考虑不实现Action接口,而是继承ActionSupport类,在一个Action中,写多个方法,进入输入页面,譬如“admin/class/add_class.jsp”,你根本不需要写什么方法,可以这样调用,addclass!input.action,会调用doInput()方法,进入input页面(见下面配置), public class ClassInfoAction extends ActionSupport { private ClassInfo classInfo; private List classInfoList; //Setters and Getters public void addClassInfo(); throws Exception { try { save(classInfo);.....; addActionMessage("添加类别成功!");; } catch(Exception e); { addActionError(e.getMessage(););; return INPUT; } return SUCCESS; } public void listClassInfo(); throws Exception { classInfoList = ... return SUCCESS; } } xwork.xml配置: <action name="addclass" class="ClassInfoAction" method="addClassInfo"> <interceptor-ref name="fileUpload"/> <interceptor-ref name="default-stack" /> <result name="success" type="redirect-action">listclass</result> <result name="input">/admin/class/add_class.jsp</result> </action> <action name="listclass" class="ClassInfoAction" method="listClassInfo"> <result name="success" >/admin/class/manager_class.jsp</result> </action> OK,祝你好运! |
|
返回顶楼 | |