1、定义类和方法(方法必须是public static)
public class MyFunctions {
/**
* 方法必须是public static
* @param name
* @return
*/
public static String sayHello(String name) {
return "Hello " + name;
}
}
2、编写自定义tld文件,并且将此文件放到WEB-INF或WEB-INF任意子目录下
内容全查看fn.tld文件
考下头字段
<?xml version="1.0" encoding="UTF-8" ?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">
<description>my functions library</description>
<display-name>my functions</display-name>
<tlib-version>1.0</tlib-version>
<short-name>my</short-name>
<!-- 自己写的uri -->
<uri>http://www.bjsxt.com/functions</uri>
<function>
<name>sayHello</name>
<function-class>com.bjsxt.struts.MyFunctions</function-class>
<!-- 包装类要写完整类名 -->
<function-signature>java.lang.String sayHello(java.lang.String)</function-signature>
</function>
</taglib>
3、在jsp中采用taglib指令引入自定义函数库
<%@ taglib prefix="my" uri="http://www.bjsxt.com/functions"%>
4、采用 前缀+冒号+函数名 调用即可
服务器
request.setAttribute("name", "Tom");
客户端
<li>测试自定义函数库</li><br>
${my:sayHello(name) }<br>
12、工程的建立
联合删除用
Jsp修改页面
function addUser() {
window.self.location = "user_input.jsp";
}
function modifyUser() {
var count = 0;
var j = 0;
for (var i = 0; i < document.getElementsByName("selectFlag").length; i++) {
if (document.getElementsByName("selectFlag")[i].checked) {
j = i;
count++;
}
}
if (count == 0) {
alert("请选择需要修改的用户!");
return;
}
if (count > 1) {
alert("一次只能修改一个用户!");
return;
}
if (count == 1) {
window.self.location = "find.do?userId=" + document.getElementsByName("selectFlag")[j].value;
}
}
function deleteUser() {
var flag = false;
for (var i = 0; i < document.getElementsByName("selectFlag").length; i++) {
if (document.getElementsByName("selectFlag")[i].checked) {
flag = true;
}
}
if (!flag) {
alert("请选择需要删除的用户!");
return;
}
if (window.confirm("确认删除吗?")) {
with (document.getElementById("userForm")) {
method = "post";
action = "del.do";
submit();
}
}
}
function checkAll() {
for (var i = 0; i < document.getElementsByName("selectFlag").length; i++) {
document.getElementsByName("selectFlag")[i].checked = document.getElementById("ifAll").checked;
}
}
</script>
</head>
<body class="body1">
<form name="userform" id="userform">
<div align="center">
<table width="95%" border="0" cellspacing="0" cellpadding="0"
height="35">
<tr>
<td class="p1" height="18" nowrap>
</td>
</tr>
<tr>
<td width="522" class="p1" height="17" nowrap>
<img src="../images/mark_arrow_02.gif" width="14" height="14">
<b>系统管理>>用户维护</b>
</td>
</tr>
</table>
<hr width="100%" align="center" size=0>
</div>
<table width="95%" height="20" border="0" align="center"
cellspacing="0" class="rd1" id="toolbar">
<tr>
<td width="49%" class="rd19">
<font color="#FFFFFF">查询列表</font>
</td>
<td width="27%" nowrap class="rd16">
<div align="right"></div>
</td>
</tr>
</table>
<table width="95%" border="1" cellspacing="0" cellpadding="0"
align="center" class="table1">
<tr>
<td width="55" class="rd6">
<input type="checkbox" name="ifAll" onClick="checkAll()">
</td>
<td width="119" class="rd6">
用户代码
</td>
<td width="152" class="rd6">
用户名称
</td>
<td width="166" class="rd6">
联系电话
</td>
<td width="150" class="rd6">
</td>
<td width="153" class="rd6">
创建日期
</td>
</tr>
<logic:empty name="userlist">
<tr>
<td class="rd8" colspan="6">
<font color="red">没有符合条件的数据</font>
</td>
</tr>
</logic:empty>
<logic:notEmpty name="userlist">
<logic:iterate id="user" name="userlist">
<tr>
<td class="rd8">
<input type="checkbox" name="selectFlag" class="checkbox1"
value="<bean:write name="user" property="userId"/>">
</td>
<td class="rd8">
<bean:write name="user" property="userId" />
</td>
<td class="rd8">
<bean:write name="user" property="userName" />
</td>
<td class="rd8">
<bean:write name="user" property="contactTel" />
</td>
<td class="rd8">
<bean:write name="user" property="email" />
</td>
<td class="rd8">
<bean:write name="user" property="createDate" format="yyyy-MM-dd HH:mm:ss" />
</td>
</tr>
</logic:iterate>
</logic:notEmpty>
</table>
<table width="95%" height="30" border="0" align="center"
cellpadding="0" cellspacing="0" class="rd1">
<tr>
<td nowrap class="rd19" height="2">
<div align="left">
<font color="#FFFFFF"> 共 xx 页</font>
<font color="#FFFFFF">当前第</font> 
<font color="#FF0000">x</font> 
<font color="#FFFFFF">页</font>
</div>
</td>
<td nowrap class="rd19">
<div align="right">
<input name="btnAdd" type="button" class="button1" id="btnAdd"
value="添加" onClick="addUser()">
<input name="btnDelete" class="button1" type="button"
id="btnDelete" value="删除" onClick="deleteUser()">
<input name="btnModify" class="button1" type="button"
id="btnModify" value="修改" onClick="modifyUser()">
</div>
</td>
</tr>
</table>
From表单收集
private String[] selectFlag;
action中
UserActionForm uaf = (UserActionForm)form;
//取得需要删除的userId的集合
String[] userIdList = uaf.getSelectFlag();
//调用业务逻辑操作
UserManager.getInstance().deleteUsers(userIdList);
Management中
public class UserManager {
private static UserManager instance = new UserManager();
public static UserManager getInstance() {
return instance;
}
public void deleteUsers(String[] userIdList) {
Connection conn = null;
try {
conn = DB.getConn();
userDao.deleteUsers(conn, userIdList);
}catch(Exception e)
Userdao中
public interface UserDao {
public void deleteUsers(Connection conn, String[] userIdList);
userdao实现中
public void deleteUsers(Connection conn, String[] userIdList) {
StringBuffer sbfSql = new StringBuffer();
for (int i = 0; i < userIdList.length; i++) {
sbfSql.append("'")
.append(userIdList[i])
.append("'")
.append(",");
}
String sql = "delete from t_user where user_id in (" + sbfSql.substring(0, sbfSql.length()-1) + ")";
Statement stmt = null;
try {
stmt = conn.createStatement();
stmt.executeUpdate(sql);
}catch(SQLException e) {
e.printStackTrace();
}finally {
DB.closeStmt(stmt);
DB.closeConn(conn);
}
Jsp列表页面:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>用户维护</title>
<link rel="stylesheet" href="../style/drp.css">
<script type="text/javascript">
function addUser() {
window.self.location = "user_input.jsp";
}
function modifyUser() {
var count = 0;
var j = 0;
for (var i = 0; i < document.getElementsByName("selectFlag").length; i++) {
if (document.getElementsByName("selectFlag")[i].checked) {
j = i;
count++;
}
}
if (count == 0) {
alert("请选择需要修改的用户!");
return;
}
if (count > 1) {
alert("一次只能修改一个用户!");
return;
}
if (count == 1) {
window.self.location = "find.do?userId=" + document.getElementsByName("selectFlag")[j].value;
}
}
function deleteUser() {
var flag = false;
for (var i = 0; i < document.getElementsByName("selectFlag").length; i++) {
if (document.getElementsByName("selectFlag")[i].checked) {
flag = true;
}
}
if (!flag) {
alert("请选择需要删除的用户!");
return;
}
if (window.confirm("确认删除吗?")) {
with (document.getElementById("userForm")) {
method = "post";
action = "del.do";
submit();
}
}
}
function checkAll() {
for (var i = 0; i < document.getElementsByName("selectFlag").length; i++) {
document.getElementsByName("selectFlag")[i].checked = document.getElementById("ifAll").checked;
}
}
</script>
</head>
<body class="body1">
<form name="userform" id="userform">
<div align="center">
<table width="95%" border="0" cellspacing="0" cellpadding="0"
height="35">
<tr>
<td class="p1" height="18" nowrap>
</td>
</tr>
<tr>
<td width="522" class="p1" height="17" nowrap>
<img src="../images/mark_arrow_02.gif" width="14" height="14">
<b>系统管理>>用户维护</b>
</td>
</tr>
</table>
<hr width="100%" align="center" size=0>
</div>
<table width="95%" height="20" border="0" align="center"
cellspacing="0" class="rd1" id="toolbar">
<tr>
<td width="49%" class="rd19">
<font color="#FFFFFF">查询列表</font>
</td>
<td width="27%" nowrap class="rd16">
<div align="right"></div>
</td>
</tr>
</table>
<table width="95%" border="1" cellspacing="0" cellpadding="0"
align="center" class="table1">
<tr>
<td width="55" class="rd6">
<input type="checkbox" name="ifAll" onClick="checkAll()">
</td>
<td width="119" class="rd6">
用户代码
</td>
<td width="152" class="rd6">
用户名称
</td>
<td width="166" class="rd6">
联系电话
</td>
<td width="150" class="rd6">
</td>
<td width="153" class="rd6">
创建日期
</td>
</tr>
<logic:empty name="userlist">
<tr>
<td class="rd8" colspan="6">