LookupDispatchAction类处理一个form多个submit _JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > LookupDispatchAction类处理一个form多个submit

LookupDispatchAction类处理一个form多个submit

 2011/11/25 9:18:42  king114963349  http://kingpingping.iteye.com  我要评论(0)
  • 摘要:ACTION中重定向@OverridepublicStringlist()throwsException{HttpServletRequestrequest=ServletActionContext.getRequest();StringloginName=request.getParameter("j_username");Stringpassword=request.getParameter("j_password");HttpSessionsession=request
  • 标签:for 一个

ACTION中重定向

@Override
public String list() throws Exception {
????HttpServletRequest request = ServletActionContext.getRequest();
????String loginName = request.getParameter("j_username");
????String password = request.getParameter("j_password");
????HttpSession session = request.getSession();
????session.setAttribute("username", loginName);
????session.setAttribute("password", password);
????????
//你要转向的页面的地址.

????String url = new String( ("../j_spring_security_check?j_username="
????????+java.net.URLEncoder.encode(loginName)
????????+"&j_password="+password).getBytes("UTF-8"),"ISO8859_1");

??? //你要转向的页面的地址.
????HttpServletResponse response = ServletActionContext.getResponse();
????response.sendRedirect(url);
???
//重定向后,别忘了返回null值,而不能再返回return????

??? //mapping.findForward("****");??????
??? return null;
????
//return SUCCESS;????????????

}

有时在HTML form中需要提供多个提交按钮,这时LookupDispatchAction类就派上用场了。LookupDispatchAction是DispatchAction的子类,用于处理客户端代码中有一个Form含有多个提交按钮的情况。为了使用LookupDispatchAction,首先来编写客户端代码,代码如下:

?

<html:form?action="myaction">
?????
???
<html:submit?property="action">
???????
<bean:message?key="submit.print"?/>
???
</html:submit>
???
<html:submit?property="action">
???????
<bean:message?key="submit.save"?/>
???
</html:submit>
</html:form>

??? 其中submit.print和submit.save是属性文件中的key.action实际上是提交按钮的name属性值。在提交时,会将property和<bean:message key="……" />作为请求参数和参数值传给Struts动作。如save按钮被单击时,请求URL为http://localhost:8080/……/myaction.do?action=save.其中save为submit.save在属性文件中对应的属性值,也就是说submit.save = save.

??? 接下来我们编写一个LookupDispatchAction的子类,代码如下:

?

package?action;
import
?org.apache.struts.actions.LookupDispatchAction;
?
??
public?class?MyLookupDispatchAction?extends
?LookupDispatchAction
??{
??????
//
??为了方便描述,在这里未使用属性文件,只是直接将key和value的映射添加到Map对象中
??????
//
??读者可以在getKeyMethodMap方法中从属性文件中读取相应的key-value对
??????
//??来添加到Map对象中

??????protected?Map?getKeyMethodMap()
??????{
??????????Map?m?
=?new
?HashMap();
??????????m.put(
"submit.print",?"print"
);
??????????m.put(
"submit.save",?"save"
);
??????????
return
?m;
??????}
??????
public
?ActionForward?print?(ActionMapping?mapping,?ActionForm?form,
??????????????HttpServletRequest?request,?HttpServletResponse?response)
??????{
??????????
//?处理print代码

??????}?
??????
public
?ActionForward?save(ActionMapping?mapping,?ActionForm?form,
??????????????HttpServletRequest?request,?HttpServletResponse?response)
??????{
??????????
//?处理save代码

??????}?
??}

??? 在编写LookupDispatchAction的子类时要注意必须实现getKeyMethodMap方法,在这个方法中需要进行key和Action方法的映射。下面的代码用来配置MyLookupDispatchAction.

?

<action?path="/moresubmit"?type="action.MyLookupDispatchAction"?parameter="action"?/>

??? 其中parameter属性指定了请求URL中由提交按钮生成的请求参数名

上一篇: Java对象序列化 下一篇: Java jxl API简介
发表评论
用户名: 匿名