动态Action的实现:

在下面用的是只用一个Action 来处理多个Form 的业务处理:

它的原理是:1利用一个隐藏的文本域传一个方法名:然后调用Action中相映的方法:而这个Action一定是一个DispatchAction 代码如下:

package com.struts.action;

 

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionForward;

import org.apache.struts.action.ActionMapping;

import org.apache.struts.action.DynaActionForm;

import org.apache.struts.actions.DispatchAction;

 

 

public class LoginAction extends DispatchAction {

 

    public ActionForward love(ActionMapping mapping, ActionForm form,

           HttpServletRequest request, HttpServletResponse response) {

       DynaActionForm da=(DynaActionForm)form;

       System.out.println(da.get("name")+"   I love you ");

       return null;

    }

    public ActionForward dislike(ActionMapping mapping, ActionForm form,

           HttpServletRequest request, HttpServletResponse response) {

       DynaActionForm da=(DynaActionForm)form;

       System.out.println(da.get("name")+"   I dislike you ");

       return null;

    }

    public ActionForward miss(ActionMapping mapping, ActionForm form,

           HttpServletRequest request, HttpServletResponse response) {

       DynaActionForm da=(DynaActionForm)form;

       System.out.println(da.get("name")+"   I miss you ");

       return null;

    }

}

 

而在jsp中的页面中的代码如下:

<%@ page language="java" pageEncoding="utf-8"%>

<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>

<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>

 

<html>

    <head>

       <title>JSP for LoginForm form</title>

       <script type="text/javascript">

       <!--

           function _action(_value){

              document.forms[0].method.value=_value;

              document.forms[0].submit();

           }

       //-->

       </script>

    </head>

    <body>

       <html:form action="/login">

       <html:text property="name"/>

       <html: hidden property="method"/>

           姓名<input type="button" name="" value="love" onclick="_action(this.value)"/>

           <input type="button" name="" value="dislike" onclick="_action(this.value)"/>

           <input type="button" name="" value="miss" onclick="_action(this.value)"/>

       </html:form>

    </body>

</html>

如上是一个的一个hidden

 

然后在struts-config.xml中的配置中如下代码:标明hidden:

<action-mappings >

    <action

      attribute="loginForm"

      input="/form/login.jsp"

      name="loginForm"

      path="/login"

      parameter="method"

      scope="request"

      type="com.struts.action.LoginAction" />

  </action-mappings>

在上面的parameter指定hidden

 

超链接访问如:<a herf="index.do?mehto=login"></a>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值