您的位置:首页 > 其它

【实例】struct框架一个表单两个提交按钮-高级Action应用三(LookupDispatchAction应用)

2015-02-13 14:58 585 查看
在login.jsp页面显示一个表单,该表单具备两个不同的提交按钮;分别能够输入用户账号,密码,第一个提交按钮是一个login(登陆),验证用户是否登录成功;第二个按钮是一个register (注册),点击,到达另一个页面。

使用LookupDispatchAction方法的流程

1新建(LoginAction.java)文件,建立一个LookupDispatchAction,编写处理函数

1.1 LookupDispatchAction类必须引用import org.apache.struts.actions.LookupDispatchAction;包

1.2 重写类中的getKeyMethodMap()抽象方法【重要】注意map.put(资源文件key,方法名)

1.3 为LoginAction.java中建立login函数和reg函数

2建立login.jsp页面

2.1 注意按钮标签从资源文件获取

2.2 编写ApplicationResources.properties资源文件

2.3 在struts-config.xml中添加配置parameter属性为parameter="ope"

2.4将提交按钮property和struts-config.xml中参数名称要一致


总结

1.首先是提交的两个按钮是从资源文件中得到的

2.然后是两个按钮的property属性,我们在struts-config.xml文件中配置过。

3.通过点击提交action="/login"调用Login.Action.java文件中的getKeyMethodMap()方法。通过getKeyMethodMap()方法,查询资源文件key中的不同值和方法名来进行处理

部分代码如下:

LoginAction.java文件代码

/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package guo_demo5.action;

import java.util.HashMap;
import java.util.Map;

import guo_demo5.form.LoginForm;

import javax.servlet.ServletException;
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;
import org.apache.struts.actions.LookupDispatchAction;

public class LoginAction extends LookupDispatchAction {

// 重写getKeyMethodMap()方法
protected Map getKeyMethodMap() {  //用一个map保存资源文件key和方法名的映射
Map map = new HashMap();
map.put("info.login", "login");	//map.put(资源文件key,方法名)
map.put("info.reg", "reg");
return map;
}
//登陆
public ActionForward login(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
LoginForm loginForm = (LoginForm) form;// TODO Auto-generated method stub
System.out.println("登陆");
return null;
}
//注册
public ActionForward reg(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
LoginForm loginForm = (LoginForm) form;// TODO Auto-generated method stub
System.out.println("注册");
return null;
}
}


ApplicationResources.properties资源文件

info.login=login
info.reg=reg


struts-config.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">

<struts-config>
<data-sources />
<form-beans >
<form-bean name="loginForm" type="guo_demo5.form.LoginForm" />
</form-beans>
<global-exceptions />
<global-forwards />
<action-mappings>
<action
name="loginForm"
path="/login"
parameter="ope"
type="guo_demo5.action.LoginAction">
<set-property property="cancellable" value="true" />
</action>
</action-mappings>
<message-resources parameter="guo_demo5.ApplicationResources" />
</struts-config>


login.jsp文件

<%@ page language="java" pageEncoding="gb2312"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>

<html>
<head>
<title>登陆LookupDispatchAction使用</title>
</head>
<body>
<html:form action="/login" method="post">
account : <html:text property="account"/><br/>
passWord : <html:password property="passWord"/><br/>
<html:submit property="ope"><bean:message key="info.login"/></html:submit>
<html:submit property="ope"><bean:message key="info.reg"/></html:submit>
</html:form>
</body>
</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐