struts的控制器类

今天学习了struts的控制器类,学习了一个DispachAction的类,在org.apache.struts.actions. DispachAction中,主要是解决多个业务问题。下面介绍两种使用的方式。
第一种
例如:类LoginAction继承DispachAction,:

public class LoginAction extends DispatchAction {
    public ActionForward loginValidate(ActionMapping mapping, ActionForm form,
                                       HttpServletRequest request,
                                       HttpServletResponse response) {

        LoginForm loginForm = (LoginForm) form;
        ActionForward forward = new ActionForward();
        ...
        return forward;
    }

    public ActionForward deleteUser(ActionMapping mapping, ActionForm form,
                                    HttpServletRequest request,
                                    HttpServletResponse response) {
        LoginForm loginForm = (LoginForm) form;
        ActionForward forward = new ActionForward();
        ...
        return forward;
    }
}

一个验证信息正确性loginValidate,一个删除一个记录deleteUser方法,

method=方法名来指定要调用的方法。

新建一个jsp页面login.jsp,注意:form表单的action的值:::

<html:form action="/loginAction.do?method=loginValidate" method="POST">      用户名:
      <html:text property="au_lname"/>
      <br>
      <html:submit property="submit" value="Submit"/>
      <br>
      <html:reset value="Reset"/>
    </html:form>

验证信息。



再建一个jsp页面delete.jsp,主要内容如下:::

<html:form action="/loginAction.do?method=deleteUser" method="POST">      用户名:
      <html:text property="au_lname"/>
      <br>
      <html:submit property="submit" value="Submit"/>
      <br>
      <html:reset value="Reset"/>
    </html:form>

根据用户名删除。

 

在struts-config.xml配置一个parameter="method"属性键值对:

<action-mappings>
    <action name="loginForm" parameter="method" path="/loginAction" scope="request" type="com.aptech.dispatchactiondemo.action.LoginAction">
      <forward name="error" path="/error.jsp" />
      <forward name="success" path="/success.jsp" />
      <forward name="deletesuccess" path="/deletesuccess.jsp" />
    </action>
  </action-mappings>


第二种

这一种的struts-config.xml与第一种的相同,也要有parameter=""属性。

分析以下第一种方式:Action中有两个方法,对应两个jsp页面、具体为对应两个表单、两个action="/loginAction.do"路径,

而第二种方法是只有一个jsp页面、即一个表单,具体如下:

...
  <h1>下面表单中的“添加”和“修改”按钮都可以提交表单,但不是JSF</h1>
  <p>
    <html:form action="/demoAction.do" method="POST">
      <%--提交的路径还是*.do --%>
      userName:
      <html:text property="userName"/>
      <br>
      password:
      <html:password property="password"/>
      <br>
      <input type="hidden" name="method" value="add"/>
      <%--

        添加了一个hidden隐藏文本域,name的值method与

        struts-config.xml里面的parameter的值method相同

      --%>
      <input type="submit" οnclick="method.value='add'" value="添加"/>
      <input type="submit" οnclick="method.value='modify'" value="修改"/>
      <%--两个sumbit按钮,在onclick方法上更改method的值--%>
    </html:form>
...

上面的表单有两个提交按钮,特别的是有一个hidden隐藏域的作用。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值