`

ActionMapping相关

阅读更多

一、Map的设置map.put("path",new Actionmapping());

 

二、forward属性

      注意是forward属性而不是forward标签!

 

package com.lwf.struts.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

public class ConvertAction extends Action {

	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		
		return mapping.findForward("success");
	}

}

 

<action path="/convertAction" type="com.lwf.struts.action.ConvertAction" name="convertForm"  scope="request">
      <forward name="success" path="/convertResult.jsp"></forward>
</action>
可以看到上面的action里面不做任何处理,完全可以用下面的设置来代替。
<action path="/convertAction" forward="/convertResult.jsp" name="convertForm"  scope="request"/>

 

forward属性相当于request.getRequestDispatcher("/convertResult.jsp").forward(request, response);

 

 

三、unknown属性

我们在浏览器中输入http://localhost:8888/TestStruts/login.do

ActionServlet会在ActionMapping 中查找到对应action进行处理并转发。那么现在我输入

http://localhost:8888/TestStruts/login1.do,显然没有这个action那么系统会进入错误页面,客户如果看到这里会大发雷霆了。。至少应该有一个友好的提示页面给客户看到。。

这就是unknown属性的用处了。

<action path="/unknownAction" forward="/unknown.jsp" unknown="true"/>

 

上面配置之后,如果系统找不到login1.do那么会自动转发到unknown.jsp,我们可以在这个页面提示客户检查输入的请求地址是否正确。。

 

需要注意的是unknown属性只对do请求起作用。比如JSP页面上链接找不到。那就不起作用了。如下面的链接

<a href="http://localhost:8080/TestStruts/indes.jsp">index</a>

 

四、input属性

设置了input属性并将validate设为true时,当表单在actionForm的validate方法中验证失败时会自动转发到该属性指定的路径。不再执行Action后面的return mapping.findForward("success");

当然我们也可以在Action中通过return mapping.getInputForward();转发到它指定的路径。

分享到:
评论
Global site tag (gtag.js) - Google Analytics