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

来源:互联网 发布:淘宝交易额 英文 编辑:程序博客网 时间:2024/04/30 07:58

在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 stubSystem.out.println("登陆");return null;}//注册public ActionForward reg(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) {LoginForm loginForm = (LoginForm) form;// TODO Auto-generated method stubSystem.out.println("注册");return null;}}


ApplicationResources.properties资源文件

info.login=logininfo.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>

0 0
原创粉丝点击