站内搜索: 请输入搜索关键词

当前页面: 开发资料首页JSP 专题Struts配置说明

Struts配置说明

摘要: Struts配置说明
<table width="100%" height="92%" border="0" cellpadding="6" cellspacing="0"> <tr> <td height="623" align="left" valign="top" class="content">

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
<table cellSpacing=0 cellPadding=0 border=1>

<tr>
<td vAlign=top width=114>
字段名</td>
<td vAlign=top width=114>
类型</td>
<td vAlign=top width=114>
长度</td>
<td vAlign=top width=114>
中文诠释</td>
<td vAlign=top width=114>
备注</td></tr>
<tr>
<td vAlign=top width=114>
userId</td>
<td vAlign=top width=114>
Char</td>
<td vAlign=top width=114>
10</td>
<td vAlign=top width=114>
用户id</td>
<td vAlign=top width=114>
主键 </td></tr>
<tr>
<td vAlign=top width=114>
userName</td>
<td vAlign=top width=114>
Varchar</td>
<td vAlign=top width=114>
20</td>
<td vAlign=top width=114>
用户名</td>
<td vAlign=top width=114>
</td></tr></table>
查询条件:通过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" %>

HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<head>


UserSearch.jsp

</head>

<body>

<table border="0">
<tr>
<td align="right"> 姓名:</td>
<td></td>
</tr>
<tr>
<td></td>
<td>-- or --</td>
</tr>
<tr>
<td align="right">
用户id:
</td>
<td>(xxx-xx-xxxx)</td>
</tr>
<tr>
<td></td>
<td> </td>
</tr>
</table>









No Employee Found



<table border="1">
<tr>
<th>姓名
</th>
<th>用户id</th>
</tr>

<tr>
<td> </td>
<td> </td>
</tr>

</table>




</body>

这个jsp页面中有一个form,


他的action是/userSearch; 所以我们可以在struts-config.xml中定义这个action;
由于此action用到了一个ActionForm叫userForm,我们可以同时配置form-beans配置如下:

<?xml version="1.0" encoding="UTF-8"?>
struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">


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

</form-bean>
</form-beans>








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

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



然后我们在struts-config.xml中添加这个类: (加粗的部分);
type
="com.yourcompany.struts.UserSearchAction">

在UserSearchAction.java中,我们可以通过getDataSource(HttpServerletRequest request)方法得到数据库连接池,数据库连接池的配置如下:
找到struts-config.xml文件,修改data-sources标签

…数据库连接池
……….密码
…………………...最小连接数
…………………..最大连接数
………………………..用户名
………………….驱动程序
………………描述
……………………………………………………………………………连接地址
…..是否只读
….是否自动提交事务
……登陆超时





然后程序就可以运行了

  </td> </tr> </table></td> </tr> </table>
↑返回目录
前一篇: Structs的基本配置
后一篇: WebLogic 简介及安装与配置指南- -