首先項目結構
pom文件
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.maven</groupId> <artifactId>springMvc_MyBatis</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>springMvc_MyBatis Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <!-- JUnit testing framework --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <!-- Spring framework --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>3.2.6.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>3.2.6.RELEASE</version> </dependency> <!-- Spring AOP dependency --> <dependency> <groupId>cglib</groupId> <artifactId>cglib</artifactId> <version>2.2</version> </dependency> <!-- MySQL database driver --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.0.5</version> </dependency> <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.6.1</version> </dependency> <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.4</version> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.1.1</version> </dependency> <dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> <version>3.2.1</version> </dependency> <dependency> <groupId>antlr</groupId> <artifactId>antlr</artifactId> <version>2.7.7</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.2.3</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>3.1.1.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>3.1.1.RELEASE</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.2.1</version> </dependency> <dependency> <groupId>c3p0</groupId> <artifactId>c3p0</artifactId> <version>0.9.1.2</version> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.7.4</version> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-core-asl</artifactId> <version>1.9.11</version> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-core-lgpl</artifactId> <version>1.9.11</version> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.9.11</version> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-lgpl</artifactId> <version>1.9.11</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</version> </dependency> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.2.2</version> </dependency> <!-- httpclient --> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.2.2</version> </dependency> <!-- log日志 --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.9</version> </dependency> <!--servlet --> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId> <version>1.1.2</version> </dependency> <dependency> <groupId>javaee</groupId> <artifactId>javaee-api</artifactId> <version>5</version> <scope>provided</scope> </dependency> </dependencies> <build> <finalName>springMvc_MyBatis</finalName> </build> </project>
使用maven install下載需要的jar包。
之后一步一步實現這一個簡單的小例子。
一個特別好的例子的網址
http://www.baikeyang.com/code/96610.html
本機運行結果:
主要代碼:
Add.java
package com.bky.model; public class Add { private String id; private String tname; private String tpwd; public String getId() { return id; } public void setId(String id) { this.id = id == null ? null : id.trim(); } public String getTname() { return tname; } public void setTname(String tname) { this.tname = tname == null ? null : tname.trim(); } public String getTpwd() { return tpwd; } public void setTpwd(String tpwd) { this.tpwd = tpwd == null ? null : tpwd.trim(); } }
AddMapper.java
package com.bky.dao; import java.util.List; import com.bky.model.Add; public interface AddMapper { int deleteByPrimaryKey(String id); int insert(Add record); int insertSelective(Add record); Add selectByPrimaryKey(String id); int updateByPrimaryKeySelective(Add record); int updateByPrimaryKey(Add record); List<Add> getAll(); }
AddMapper.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <mapper namespace="com.bky.dao.AddMapper" > <resultMap id="BaseResultMap" type="com.bky.model.Add" > <id column="id" property="id" jdbcType="VARCHAR" /> <result column="tname" property="tname" jdbcType="VARCHAR" /> <result column="tpwd" property="tpwd" jdbcType="VARCHAR" /> </resultMap> <sql id="Base_Column_List" > id, tname, tpwd </sql> <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String" > select <include refid="Base_Column_List" /> from tadd where id = #{id,jdbcType=VARCHAR} </select> <delete id="deleteByPrimaryKey" parameterType="java.lang.String" > delete from tadd where id = #{id,jdbcType=VARCHAR} </delete> <insert id="insert" parameterType="com.bky.model.Add" > insert into tadd (id, tname, tpwd ) values (#{id,jdbcType=VARCHAR}, #{tname,jdbcType=VARCHAR}, #{tpwd,jdbcType=VARCHAR} ) </insert> <insert id="insertSelective" parameterType="com.bky.model.Add" > insert into tadd <trim prefix="(" suffix=")" suffixOverrides="," > <if test="id != null" > id, </if> <if test="tname != null" > tname, </if> <if test="tpwd != null" > tpwd, </if> </trim> <trim prefix="values (" suffix=")" suffixOverrides="," > <if test="id != null" > #{id,jdbcType=VARCHAR}, </if> <if test="tname != null" > #{tname,jdbcType=VARCHAR}, </if> <if test="tpwd != null" > #{tpwd,jdbcType=VARCHAR}, </if> </trim> </insert> <update id="updateByPrimaryKeySelective" parameterType="com.bky.model.Add" > update tadd <set > <if test="tname != null" > tname = #{tname,jdbcType=VARCHAR}, </if> <if test="tpwd != null" > tpwd = #{tpwd,jdbcType=VARCHAR}, </if> </set> where id = #{id,jdbcType=VARCHAR} </update> <update id="updateByPrimaryKey" parameterType="com.bky.model.Add" > update tadd set tname = #{tname,jdbcType=VARCHAR}, tpwd = #{tpwd,jdbcType=VARCHAR} where id = #{id,jdbcType=VARCHAR} </update> <select id="getAll" resultMap="BaseResultMap"> SELECT * FROM tadd </select> </mapper>
BaseService.java
package com.bky.service; import java.util.List; import com.bky.model.Add; public interface BaseService { String addInfo(Add addInfo); List<Add> getAll(); String delete(String id); Add findById(String id); String update(Add addInfo); }
BaseServiceImpl.java
package com.bky.service.impl; import java.util.List; import java.util.UUID; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.bky.dao.AddMapper; import com.bky.model.Add; import com.bky.service.BaseService; @Service("baseService") public class BaseServiceImpl implements BaseService { private AddMapper addMapper; public AddMapper getAddMapper() { return addMapper; } @Autowired public void setAddMapper(AddMapper addMapper) { this.addMapper = addMapper; } @Override public String addInfo(Add addInfo) { if (addMapper.insertSelective(addInfo) == 1) { return "添加成功"; } return "添加失敗"; } @Override public List<Add> getAll() { return addMapper.getAll(); } @Override public String delete(String id) { if (addMapper.deleteByPrimaryKey(id) == 1) { return "刪除成功"; } return "刪除失敗"; } @Override public Add findById(String id) { return addMapper.selectByPrimaryKey(id); } @Override public String update(Add addInfo) { if (addMapper.updateByPrimaryKeySelective(addInfo) == 1) { return "更新成功"; } return "更新失敗"; } }
BaseController.java
package com.bky.controller; import java.util.List; import java.util.UUID; import javax.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import com.bky.model.Add; import com.bky.service.BaseService; @Controller public class BaseController { private BaseService baseService; public BaseService getBaseService() { return baseService; } @Autowired public void setBaseService(BaseService baseService) { this.baseService = baseService; } @SuppressWarnings("finally") @RequestMapping("addInfo") public String add(Add add,HttpServletRequest request){ try { add.setId(UUID.randomUUID().toString()); System.out.println(add.getId() + ":::::" + add.getTname() + ":::::" + add.getTpwd()); String str = baseService.addInfo(add); System.out.println(str); request.setAttribute("InfoMessage", str); } catch (Exception e) { e.printStackTrace(); request.setAttribute("InfoMessage", "添加信息失敗!具體異常信息:" + e.getMessage()); } finally { return "result"; } } @RequestMapping("getAll") public String getAddInfoAll(HttpServletRequest request){ try { List<Add> list = baseService.getAll(); System.out.println(list); request.setAttribute("addLists", list); return "listAll"; } catch (Exception e) { e.printStackTrace(); request.setAttribute("InfoMessage", "信息載入失敗!具體異常信息:" + e.getMessage()); return "result"; } } @SuppressWarnings("finally") @RequestMapping("del") public String del(String tid,HttpServletRequest request){ try { String str = baseService.delete(tid); request.setAttribute("InfoMessage", str); } catch (Exception e) { e.printStackTrace(); request.setAttribute("InfoMessage", "刪除信息失敗!具體異常信息:" + e.getMessage()); } finally { return "result"; } } @RequestMapping("modify") public String modify(String tid,HttpServletRequest request){ try { Add add = baseService.findById(tid); request.setAttribute("add", add); return "modify"; } catch (Exception e) { e.printStackTrace(); request.setAttribute("InfoMessage", "信息載入失敗!具體異常信息:" + e.getMessage()); return "result"; } } @SuppressWarnings("finally") @RequestMapping("update") public String update(Add add,HttpServletRequest request){ try { String str = baseService.update(add); request.setAttribute("InfoMessage", str); } catch (Exception e) { e.printStackTrace(); request.setAttribute("InfoMessage", "更新信息失敗!具體異常信息:" + e.getMessage()); } finally { return "result"; } } }
配置文件
config.properties
#hibernate.dialect=com.bky.util.Oracle10gDialect #driverClassName=oracle.jdbc.driver.OracleDriver #validationQuery=SELECT 1 FROM DUAL #jdbc_url=jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=Baikeyang)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl))) #jdbc_username=sshe #jdbc_password=1234 #hibernate.dialect=org.hibernate.dialect.Oracle9Dialect #driverClassName=oracle.jdbc.driver.OracleDriver #validationQuery=SELECT 1 FROM DUAL #jdbc_url=jdbc:oracle:thin:@127.0.0.1:1521:orcl #jdbc_username=sshe #jdbc_password=1234 #hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect #driverClassName=com.mysql.jdbc.Driver validationQuery=SELECT 1 jdbc_url=jdbc:mysql://localhost:3306/bkytest?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull jdbc_username=root jdbc_password=root #hibernate.dialect=org.hibernate.dialect.SQLServer2008Dialect #driverClassName=net.sourceforge.jtds.jdbc.Driver #validationQuery=SELECT 1 #jdbc_url=jdbc:jtds:sqlserver://127.0.0.1:1433/dbName #jdbc_username=sa #jdbc_password=123456 #jndiName=java:comp/env/BenDiShuJuYuan #hibernate.hbm2ddl.auto=update #hibernate.show_sql=true #hibernate.format_sql=true #hibernate.use_sql_comments=true #sessionInfoName=sessionInfo #uploadPath=/ssheUploadFile
spring-mvc.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"> <!-- 自動掃描controller包下的所有類,使其認為spring mvc的控制器 --> <context:component-scan base-package="com.bky.controller" /> <!-- 對模型視圖名稱的解析,即在模型視圖名稱添加前后綴 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/" p:suffix=".jsp" /> </beans>
spring-mybatis.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd "> <!-- 配置數據源 --> <bean name="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> <property name="url" value="${jdbc_url}" /> <property name="username" value="${jdbc_username}" /> <property name="password" value="${jdbc_password}" /> <!-- 初始化連接大小 --> <property name="initialSize" value="0" /> <!-- 連接池最大使用連接數量 --> <property name="maxActive" value="20" /> <!-- 連接池最大空閑 --> <property name="maxIdle" value="20" /> <!-- 連接池最小空閑 --> <property name="minIdle" value="0" /> <!-- 獲取連接最大等待時間 --> <property name="maxWait" value="60000" /> <!-- <property name="poolPreparedStatements" value="true" /> <property name="maxPoolPreparedStatementPerConnectionSize" value="33" /> --> <property name="validationQuery" value="${validationQuery}" /> <property name="testOnBorrow" value="false" /> <property name="testOnReturn" value="false" /> <property name="testWhileIdle" value="true" /> <!-- 配置間隔多久才進行一次檢測,檢測需要關閉的空閑連接,單位是毫秒 --> <property name="timeBetweenEvictionRunsMillis" value="60000" /> <!-- 配置一個連接在池中最小生存的時間,單位是毫秒 --> <property name="minEvictableIdleTimeMillis" value="25200000" /> <!-- 打開removeAbandoned功能 --> <property name="removeAbandoned" value="true" /> <!-- 1800秒,也就是30分鍾 --> <property name="removeAbandonedTimeout" value="1800" /> <!-- 關閉abanded連接時輸出錯誤日志 --> <property name="logAbandoned" value="true" /> <!-- 監控數據庫 --> <!-- <property name="filters" value="stat" /> --> <property name="filters" value="mergeStat" /> </bean> <!-- myBatis文件 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <!-- 自動掃描entity目錄, 省掉Configuration.xml里的手工配置 --> <property name="mapperLocations" value="classpath:com/bky/mapping/*.xml" /> </bean> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.bky.dao" /> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" /> </bean> <!-- 配置事務管理器 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> <!-- 注解方式配置事物 --> <!-- <tx:annotation-driven transaction-manager="transactionManager" /> --> <!-- 攔截器方式配置事物 --> <tx:advice id="transactionAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="add*" propagation="REQUIRED" /> <tx:method name="append*" propagation="REQUIRED" /> <tx:method name="insert*" propagation="REQUIRED" /> <tx:method name="save*" propagation="REQUIRED" /> <tx:method name="update*" propagation="REQUIRED" /> <tx:method name="modify*" propagation="REQUIRED" /> <tx:method name="edit*" propagation="REQUIRED" /> <tx:method name="delete*" propagation="REQUIRED" /> <tx:method name="remove*" propagation="REQUIRED" /> <tx:method name="repair" propagation="REQUIRED" /> <tx:method name="delAndRepair" propagation="REQUIRED" /> <tx:method name="get*" propagation="SUPPORTS" /> <tx:method name="find*" propagation="SUPPORTS" /> <tx:method name="load*" propagation="SUPPORTS" /> <tx:method name="search*" propagation="SUPPORTS" /> <tx:method name="datagrid*" propagation="SUPPORTS" /> <tx:method name="*" propagation="SUPPORTS" /> </tx:attributes> </tx:advice> <aop:config> <aop:pointcut id="transactionPointcut" expression="execution(* com.bky.service..*Impl.*(..))" /> <aop:advisor pointcut-ref="transactionPointcut" advice-ref="transactionAdvice" /> </aop:config> <!-- 配置druid監控spring jdbc --> <bean id="druid-stat-interceptor" class="com.alibaba.druid.support.spring.stat.DruidStatInterceptor"> </bean> <bean id="druid-stat-pointcut" class="org.springframework.aop.support.JdkRegexpMethodPointcut" scope="prototype"> <property name="patterns"> <list> <value>com.bky.service.*</value> </list> </property> </bean> <aop:config> <aop:advisor advice-ref="druid-stat-interceptor" pointcut-ref="druid-stat-pointcut" /> </aop:config> </beans>
spring.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd "> <!-- 引入屬性文件 --> <context:property-placeholder location="classpath:config.properties" /> <!-- 自動掃描(自動注入) --> <context:component-scan base-package="com.bky.service..*" /> </beans>
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <display-name></display-name> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring.xml;classpath:spring-mybatis.xml</param-value> </context-param> <filter> <description>字符集過濾器</description> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <description>字符集編碼</description> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <listener> <description>spring監聽器</description> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <listener> <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class> </listener> <servlet> <description>spring mvc servlet</description> <servlet-name>springMvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <description>spring mvc 配置文件</description> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-mvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springMvc</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <session-config> <session-timeout>15</session-timeout> </session-config> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <a href="add.jsp">新增數據</a> <a href="getAll.do">查看全部數據</a> </body> </html>
add.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>添加數據</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <form action="<%=request.getContextPath() %>/addInfo.do" method="post"> 用戶名:<input type="text" name="tname"> 密碼:<input type="password" name="tpwd"> <input type="submit" value="提交數據"> </form> </body> </html>
listall.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>所有數據</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> 所有結果<br/> <table border="1"> <tr> <td>編號</td> <td>用戶名</td> <td>密碼</td> <td>操作</td> </tr> <c:forEach var="list" items="${addLists}"> <tr> <td>${list.id}</td> <td>${list.tname}</td> <td>${list.tpwd}</td> <td><a href="modify.do?tid=${list.id}">更新</a> <a href="del.do?tid=${list.id}">刪除</a></td> </tr> </c:forEach> </table> </body> </html>