Struts 开发简单例子[action formbean]

3 篇文章 0 订阅
2 篇文章 0 订阅

 

Struts 开发简单例子

想要成功运行一个基于strutsweb例子,需要对struts有一个基本的了解,掌握strutsMVC模型是如何封装如何进行控制的转交等。下面就从代码寻找答案。

1,首先在web.xml中进行servlet的定义。

  <servlet>

    <servlet-name>action</servlet-name>

    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>

    <init-param>

      <param-name>config</param-name>

      <param-value>/WEB-INF/struts-config.xml</param-value>

    </init-param>

    <init-param>

      <param-name>debug</param-name>

      <param-value>2</param-value>

    </init-param>

    <init-param>

      <param-name>detail</param-name>

      <param-value>2</param-value>

    </init-param>

    <load-on-startup>2</load-on-startup>

  </servlet>

以上代码,定义一个ActionServlet,用来捕获相应的动作。即用户端的连接请求,在此处被ActionServlet捕获。根据下面的<servlet-mapping>是将捕获到请求,根据后缀交给相应的servletaction)。随后就会根据struts-config.xml文件中的配置,进行处理。

  <servlet-mapping>

    <servlet-name>action</servlet-name>

    <url-pattern>*.shtml</url-pattern>

  </servlet-mapping>

2

首先声明要用到的formbean,并指定完整包路径

 <form-beans>

    <form-bean name="testBean" type="strutstest.action.TestBean"/>

  </form-beans>

<action-mappings>中指明了所有action所映射到的formbean类,让formbean进行处理,同时还指定了返回结果之后的跳转路径。

<action-mappings>

<action name="testBean" 对应的formbean

 path="/test/saveUser" 访问路径,即捕获到的请求

 type="org.apache.struts.beanaction.BeanAction"> Action的类型

      <forward name="success" path="/index.jsp" /> 返回成功时的跳转路径

    </action>

<action name="testBean" 

parameter="*"  表示无条件跳转,优先级最高,不交付给相应的formbean进行处理。*表示无条件跳转,如果为相应的方法名,则表示指定方法进行处理。

path="/test/index" type="org.apache.struts.beanaction.BeanAction"

 validate="false"> 表示不需要验证处理,否则交付验证

      <forward name="success" path="/web/index.html" />

    </action>

    <action name="testBean" path="/test/updateUser" type="org.apache.struts.beanaction.BeanAction"> 

      <forward name="success" path="/web/uccess.html" />

    </action>

    <action  name="testBean" path="/test/getUser" type="org.apache.struts.beanaction.BeanAction" >

         <forward name="success" path="/web/success.html" />

    </action>

  </action-mappings> 

3,下面看看整个网页代码的编写

<%@ page contentType="text/html" %>

<%@ taglib uri="struts-logic" prefix="logic" %> 

<%@ taglib uri="struts-bean" prefix="bean" %>

<%@ taglib uri="struts-html" prefix="html" %>标签库的声明,如下面的<html:link>标签

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head></head>

<body>

<html:link page="/test/saveUser.do"> 指定连接的urldoweb.xml中声明的action的捕获后缀

saveUser

</html:link>

<html:link page="/test/getUser.do?id=22">带参数的url

getUser

</html:link>

<html:link page="/test/updateUser.do">

UpdateUser

</html:link>

</body>

</html>

4formbean文件

package  strutstest.action;

 // 继承BaseBean 

 import  org.apache.struts.beanaction.BaseBean; 

 public   class  TestBean  extends  BaseBean   {

    

     public   static   final  String SUCCESS  =   "success" ; //处理之后的返回值

     public   static   final  String FAILURE  =   "failure" ;

     public  TestBean()   { } 

     private  String id; //formbean对象所涉及到的数据

     private   int  age;

     private  String name;

     private  String address;

     // getter setter 省略,此例子简单,没有用到该bean来传递数据

 // 定义几个业务方法 

      public  String saveUser()

        {

          System.out.print( " 添加用户.. " ); 

            return  SUCCESS;

      } 

       public  String updateUser()

        {

          System.out.print( " update user.. " );

           return  SUCCESS;

      } 

       public  String getUser()

        {

           if (id == null )

            { 

             System.out.print( " 没有此用户 " );

              return FAILURE;  // 导向失败 

           }       

          System.out.print( " 用户id= " + id);

           return  SUCCESS;

      } 

 }

最后,程序就可以运行了。只需要简单是四个部分,例子就能跑通。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值