积木首页 | 500多种网页特效 | 函数手册 | 广播电台 | 高清晰图片素材 | 服务器合租 | 万年历 | 网友最新浏览记录
程序开发 网页设计 搜索引擎 特效代码 操作系统 防范病毒 黑客技术 图形图象 电脑硬件 网络技术 服 务 器 数 据 库 网文精粹
您的位置:积木首页 >> 程序开发频道 >> JSP >> 正文:
标题:Struts配置说明
时间:2006-4-20 来源:不详 浏览数:

Struts配置说明


首先新建一个web项目


 


取个项目名称


 

选择项目,右键,MyEclipse->Add Struts Capabilities


 

 

出现画面:


 

此界面是在自动配置struts的配置文件 可以根据需要配置信息.

其中default application resource :指的是消息资源的配置

 

配置完成之后,会出现左侧列表中的文件,其中web.xml如下:


在 ActionServlet 的 web.xml 中使用调试级别来确保获得扩展的调试消息。有效的 debug 值是 0(不记录)到 6(最严重)。 将 detail 参数设置为调试来自 digestor 的消息.

 

 

Struts-config.xml文件如下:


 

其中data-sources用于配置数据库连接池 

form-beans用于配置actionform

global-exceptions用于配置全局异常处理

global-forwards用于配置全局Forward

action-mappings 用于配置Action映射;

message-resources 用于配置消息资源,也就是上面提到过的default application resource

 

 

 

 

 

下面开始正式编写程序;以做一个查询为例:

 

假设现在我们已经知道了数据库结构和查询条件.

数据库结构为

 

T_user





















字段名

类型

长度

中文诠释

备注

userId

Char

10

用户id

主键

userName

Varchar

20

用户名

 

查询条件:通过userId精确查找,通过userName模糊搜索

注意,为了小组开发能够顺利进行,在命名标识符时请遵循标识符的一些约定,譬如此处变量名第一个字母小写,第二个单词的第一个字母大写等等

 

首先可以肯定查询条件中会存在userId和userName两个字段,所以我们可以先新建一个ActionForm,过程如下:


找到你想存放该java类的包目录,右键,新建,类

出现画面:


 

定义类名,尽量使其有意义,而且一眼就能看懂,然后选择超类,继承

org.apache.struts.action.ActionForm类,然后点击完成

然后在类中声明两个变量userId和userName,以及最终需要返回的内容,这个内容在这里应该时一个列表;我们约定所有的查询结果如果返回时列表的都命名为results,如果时单一内容的都命名为result,这样有助于小组开发的时候减少后期加工


然后找到菜单中的源代码,选择生成Getter和Setter方法


出现界面:


选择全部选中,单击确定;

然后覆盖父类ActionForm的reset()方法

      

       public void reset(ActionMapping mapping,HttpServletRequest request){

              userId=null;

              userName=null;

              results=null;

       }

此方法用于当一个请求处理完之后,清除或者重置ActionForm的数据.

 

ActionForm 还包含一个名为 validate() 的方法。可以使用 validate 方法验证表单项,如果验证失败,则填充 ActionErrors 对象,并将控制权返还给调用页面,随后调用页面会显示这些错误。

 

定义完ActionForm之后可以定义一个返回的results里面存放的bean,新建一个类

/*

 * 创建日期 2005-10-26

 *

 * TODO 要更改此生成的文件的模板,请转至

 * 窗口 - 首选项 - Java - 代码样式 - 代码模板

 */

package com.yourcompany.struts;

 

/**

 * @author Admin

 *

 * TODO 要更改此生成的类型注释的模板,请转至

 * 窗口 - 首选项 - Java - 代码样式 - 代码模板

 */

public class User {

       private String userId;

       private String userName;

      

      

 

       /**

        * @return 返回 userId。

        */

       public String getUserId() {

              return userId;

       }

       /**

        * @return 返回 userName。

        */

       public String getUserName() {

              return userName;

       }

       /**

        * @param userId 要设置的 userId。

        */

       public void setUserId(String userId) {

              this.userId = userId;

       }

       /**

        * @param userName 要设置的 userName。

        */

       public void setUserName(String userName) {

              this.userName = userName;

       }

}

 

      

 

 

之后可以新建一张jsp页面


 

页面内容如下

<%@ page language="java" contentType="text/html; charset=gb2312"%>

 

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

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

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

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

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

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

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html:html locale="true">

  <head>

    <html:base />

   

    <title>UserSearch.jsp</title>

    <META http-equiv="content-type" content="text/html; charset=gb2312">

  </head>


  <body>

    <html:form action="/userSearch" method="post">

    <table border="0">

        <TR>

            <TD align="right"> 姓名:</TD>

            <TD><html:text property="name"/></TD>

        </TR>

        <TR>

            <TD></TD>

            <td>-- or --</td>

        </TR>

        <TR>

            <TD align="right">

                用户id:

            </TD>

            <TD><html:text property="ssNum"/>(xxx-xx-xxxx)</TD>

        </TR>

        <TR>

            <TD></TD>

            <TD> <html:submit  /></TD>

        </TR>

    </table>

   

</html:form>

 

<logic:present name="userForm" property="results">

    <hr width="100%" size="1" noshade="noshade">

   

    <bean:size id="size" name="userForm" property="results"/>

    <logic:equal name="size" value="0">

        <center> <FONT color="red"><b>No Employee Found</FONT></center>

    </logic:equal>

    <logic:greaterThan name="size" value="0">

        <table border="1">

            <tr>

                <th>姓名

                </th>

                <TH>用户id</TH>

            </tr>

            <logic:iterate id="result" name="userForm" property="results">

                <tr>

                    <TD><bean:write name="result" property="userName"/> </TD>

                    <td><bean:write name="result" property="userId"/> </td>

                </tr>

            </logic:iterate>

        </table>

       

    </logic:greaterThan>

 

</logic:present>

</body>

</html:html>

这个jsp页面中有一个form,

 

<html:form action="/userSearch " method="post">

他的action是/userSearch; 所以我们可以在struts-config.xml中定义这个action;

由于此action用到了一个ActionForm叫userForm,我们可以同时配置form-beans配置如下:

 

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">

<struts-config>

   <data-sources />

   <form-beans >

        <form-bean type="com.yourcompany.struts.UserForm" name="userForm" >

           

        </form-bean>

   </form-beans>

   <global-exceptions />

   <global-forwards />

   <action-mappings >

   <action path="/userSearch" input="UserSearch.jsp" scope="request" name="userForm" ></action>

   </action-mappings>

   <message-resources parameter="com.yourcompany.struts.ApplicationResources" />

</struts-config>

 

这里的action还差一个内容,就是action所指向的java类,我们可以添加一个Action,取名叫UserSearchAction,并且继承org.apache.struts.action.Action类


他的内容,通过覆盖Action的execute方法,进行操作,最终得到结果

 


 

然后我们在struts-config.xml中添加这个类: (加粗的部分);

   <action path="/userSearch" input="UserSearch.jsp" scope="request" name="userForm" type="com.yourcompany.struts.UserSearchAction"></action>

 

在UserSearchAction.java中,我们可以通过getDataSource(HttpServerletRequest request)方法得到数据库连接池,数据库连接池的配置如下:

找到struts-config.xml文件,修改data-sources标签

<data-sources>

      <data-source type="org.apache.struts.util.GenericDataSource">…数据库连接池

         <set-property property="password" value="lpl**#@)()#rjxy" /> ……….密码

         <set-property property="minCount" value="5" />…………………...最小连接数

         <set-property property="maxCount" value="10" />…………………..最大连接数

         <set-property property="user" value="sa" />………………………..用户名

         <set-property property="driverClass" value="com.microsoft.jdbc.sqlserver.SQLServerDriver" />………………….驱动程序

         <set-property property="description" value="" />………………描述

         <set-property property="url" value="jdbc:microsoft:sqlserver://localhost:1433;databaseName=rongda;selectMethod=cursor" /> ……………………………………………………………………………连接地址

         <set-property property="readOnly" value="false" />       …..是否只读

         <set-property property="autoCommit" value="false" />….是否自动提交事务

         <set-property property="loginTimeout" value="" />   ……登陆超时

      </data-source>

  

   </data-sources>

 

 

然后程序就可以运行了

 

 


(责任编辑:笑虎)
关于本站 | 广告服务 | 联系我们 | 版权申明 | 强强联盟 | 投稿热线 | 网站地图 | 申请链接
Copyright ©2005-2006 Gimoo.net All rights reserved. 积木网 版权所有
E-mail:gimoohr@gmail.com 京ICP备05050695号