zoukankan      html  css  js  c++  java
  • 基于Struts2+MySQL的多表出差明细表单

    下载地址:http://download.csdn.net/detail/qq_33599520/9790629

    项目结构:

    UserAction

    package com.mstf.action;
    
    import com.mstf.entity.Detail;
    import com.mstf.entity.User;
    
    import com.mstf.service.UserService;
    
    import com.opensymphony.xwork2.ActionContext;
    
    import java.sql.Timestamp;
    
    import java.util.List;
    import java.util.Map;
    
    
    public class UserAction {
        private String msg; // 登录失败提示信息
        private User user;
        private Detail detail;
        private String sheng;
        private String shi;
        private List<User> userList;
        // 获得Session
        Map<String, Object> session = ActionContext.getContext().getSession();
    
        public User getUser() {
            return user;
        }
    
        public void setUser(User user) {
            this.user = user;
        }
    
        public String getMsg() {
            return msg;
        }
    
        public void setMsg(String msg) {
            this.msg = msg;
        }
    
        public List<User> getUserList() {
            return userList;
        }
    
        public void setUserList(List<User> userList) {
            this.userList = userList;
        }
    
        public Detail getDetail() {
            return detail;
        }
    
        public void setDetail(Detail detail) {
            this.detail = detail;
        }
    
        public String getSheng() {
            return sheng;
        }
    
        public void setSheng(String sheng) {
            this.sheng = sheng;
        }
    
        public String getShi() {
            return shi;
        }
    
        public void setShi(String shi) {
            this.shi = shi;
        }
    
        // 根据账号查询用户基本信息
        public String userInfo() throws Exception {
            Map<String, Object> session = ActionContext.getContext().getSession();
            userList = UserService.userInfo((String) session.get("u_no"));
    
            return "infoSucc";
        }
    
        // 登录
        public String login() throws Exception {
            String u_no = user.getU_no();
            String u_pwd = user.getU_pwd();
    
            if (UserService.userLogin(u_no, u_pwd)) {
                session.put("u_no", u_no);
                userInfo();
    
                return "loginSucc";
            } else {
                msg = "您输入的账号或密码有误,请稍后重试!";
    
                return "fail";
            }
        }
    
        // 退出登录
        public String outLogin() {
            session.remove("u_no");
            msg = "退出成功";
    
            return "outSucc";
        }
    
        // 添加详情
        public String add() throws Exception {
            // 获得Request
            String u_no = (String) session.get("u_no");
            String[] d_city = detail.getD_city();
            String d_whither = sheng + shi + ",";
            String[] d_whithers = d_whither.split(",");
            String[] d_type = detail.getD_type();
            String[] d_intent = detail.getD_intent();
            Timestamp[] d_start_date = detail.getD_start_date();
            Timestamp[] d_stop_date = detail.getD_stop_date();
            int[] d_business_number = detail.getD_business_number();
    
            if ((null == d_city) || (null == d_whithers) || (null == d_intent) ||
                    (null == d_business_number)) {
                session.put("addMsg", "带有*号的是必填项!");
    
                return "addFail";
            }
    
            int result = UserService.add(d_city, d_whithers, d_type, d_intent,
                    d_start_date, d_stop_date, d_business_number, u_no);
    
            if (result > 0) {
                session.put("addMsg", "添加成功!");
    
                return "addSucc";
            } else {
                session.put("addMsg", "添加失败!");
    
                return "addFail";
            }
        }
    }
    

      BaseDao

    package com.mstf.dao;
    
    import com.mstf.db.DbHelper;
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    
    
    /**
     * 增删改查公共方法
     * @author wangzheng
     *
     */
    public class BaseDao {
        private static ResultSet ret;
        private static int result;
    
        // 查询通用方法
        public static ResultSet query(String sql, Connection conn,
            PreparedStatement pst) throws Exception {
            conn = DbHelper.getConnection();
            pst = conn.prepareStatement(sql);
            ret = pst.executeQuery();
    
            return ret;
        }
    
        // 添加,删除,修改公共方法
        public static int add_update_del(Connection conn, PreparedStatement pst,
            String sql) throws Exception {
            conn = DbHelper.getConnection();
            pst = conn.prepareStatement(sql);
            result = pst.executeUpdate();
    
            return result;
        }
    }
    

      UserDao

    package com.mstf.dao;
    
    import com.mstf.entity.Detail;
    import com.mstf.entity.User;
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    
    import java.util.ArrayList;
    import java.util.List;
    
    
    public class UserDao extends BaseDao {
        private static List<User> users;
        private static List<Detail> details;
        private static User user;
        private static Detail detail;
        private static Connection conn;
        private static String sql;
        private static PreparedStatement pst;
        private static ResultSet ret;
        private static int result;
    
        // 登录查询
        public static boolean queryLogin(User user) throws Exception {
            sql = "SELECT * FROM `user` WHERE `u_no` = '" + user.getU_no() +
                "' AND `u_pwd` = '" + user.getU_pwd() + "'";
            ret = BaseDao.query(sql, conn, pst);
    
            if (ret.next()) {
                return true;
            }
    
            return false;
        }
    
        // 查询对应用户基本信息
        public static List<User> queryUserInfo(User user) throws Exception {
            users = new ArrayList<User>();
            sql = "SELECT * FROM `user` WHERE `u_no` = '" + user.getU_no() + "'";
            ret = BaseDao.query(sql, conn, pst);
    
            while (ret.next()) {
                user = new User();
                user.setU_name(ret.getString("u_name"));
                user.setU_number(ret.getString("u_number"));
                user.setU_post(ret.getString("u_post"));
                user.setU_lv(ret.getString("u_lv"));
                user.setU_position(ret.getString("u_position"));
                user.setU_company(ret.getString("u_company"));
                users.add(user);
            }
    
            return users;
        }
    
        // 添加出差详情
        public static int add(Detail detail) throws Exception {
            if ((detail != null) && !detail.equals("")) {
                for (int i = 0; i < detail.getD_city().length; i++) {
                    sql = "INSERT INTO `detail` VALUES(NULL,'" +
                        detail.getD_city()[i] + "','" + detail.getD_whither()[i] +
                        "','" + detail.getD_type()[i] + "','" +
                        detail.getD_intent()[i] + "','" +
                        detail.getD_start_date()[i] + "','" +
                        detail.getD_stop_date()[i] + "'," +
                        detail.getD_business_number()[i] +
                        ",(SELECT `u_id` FROM `user` WHERE `u_no` = '" +
                        detail.getUser().getU_no() + "'))";
                    result = BaseDao.add_update_del(conn, pst, sql);
                }
            }
    
            return result;
        }
    }
    

      DbHelper

    package com.mstf.db;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    
    
    public class DbHelper {
        private static String url = "jdbc:mysql://127.0.0.1:3306/list_hotel"; // 数据库地址
        private static String userName = "root"; // 数据库用户名
        private static String passWord = "root"; // 数据库密码
        private static Connection conn;
    
        private DbHelper() {
        }
    
        public static Connection getConnection() {
            if (null == conn) {
                try {
                    Class.forName("com.mysql.jdbc.Driver");
                    conn = DriverManager.getConnection(url, userName, passWord);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
    
            return conn;
        }
    
        public static void main(String[] args) { // 测试数据库是否连通
            System.out.println(getConnection());
        }
    }
    

      Detail

    package com.mstf.entity;
    
    import java.sql.Timestamp;
    
    
    public class Detail { // 模型类
    
        private int d_id;
        private String[] d_city;
        private String[] d_whither;
        private String[] d_type;
        private String[] d_intent;
        private Timestamp[] d_start_date;
        private Timestamp[] d_stop_date;
        private int[] d_business_number;
        private User user;
    
        public int getD_id() {
            return d_id;
        }
    
        public void setD_id(int d_id) {
            this.d_id = d_id;
        }
    
        public String[] getD_city() {
            return d_city;
        }
    
        public void setD_city(String[] d_city) {
            this.d_city = d_city;
        }
    
        public String[] getD_whither() {
            return d_whither;
        }
    
        public void setD_whither(String[] d_whither) {
            this.d_whither = d_whither;
        }
    
        public String[] getD_type() {
            return d_type;
        }
    
        public void setD_type(String[] d_type) {
            this.d_type = d_type;
        }
    
        public String[] getD_intent() {
            return d_intent;
        }
    
        public void setD_intent(String[] d_intent) {
            this.d_intent = d_intent;
        }
    
        public Timestamp[] getD_start_date() {
            return d_start_date;
        }
    
        public void setD_start_date(Timestamp[] d_start_date) {
            this.d_start_date = d_start_date;
        }
    
        public Timestamp[] getD_stop_date() {
            return d_stop_date;
        }
    
        public void setD_stop_date(Timestamp[] d_stop_date) {
            this.d_stop_date = d_stop_date;
        }
    
        public int[] getD_business_number() {
            return d_business_number;
        }
    
        public void setD_business_number(int[] d_business_number) {
            this.d_business_number = d_business_number;
        }
    
        public User getUser() {
            return user;
        }
    
        public void setUser(User user) {
            this.user = user;
        }
    }
    

      User

    package com.mstf.entity;
    
    public class User { // 模型类
    
        private int u_id;
        private String u_no;
        private String u_pwd;
        private String u_name;
        private String u_number;
        private String u_post;
        private String u_lv;
        private String u_position;
        private String u_company;
    
        public int getU_id() {
            return u_id;
        }
    
        public void setU_id(int u_id) {
            this.u_id = u_id;
        }
    
        public String getU_no() {
            return u_no;
        }
    
        public void setU_no(String u_no) {
            this.u_no = u_no;
        }
    
        public String getU_pwd() {
            return u_pwd;
        }
    
        public void setU_pwd(String u_pwd) {
            this.u_pwd = u_pwd;
        }
    
        public String getU_name() {
            return u_name;
        }
    
        public void setU_name(String u_name) {
            this.u_name = u_name;
        }
    
        public String getU_number() {
            return u_number;
        }
    
        public void setU_number(String u_number) {
            this.u_number = u_number;
        }
    
        public String getU_post() {
            return u_post;
        }
    
        public void setU_post(String u_post) {
            this.u_post = u_post;
        }
    
        public String getU_lv() {
            return u_lv;
        }
    
        public void setU_lv(String u_lv) {
            this.u_lv = u_lv;
        }
    
        public String getU_position() {
            return u_position;
        }
    
        public void setU_position(String u_position) {
            this.u_position = u_position;
        }
    
        public String getU_company() {
            return u_company;
        }
    
        public void setU_company(String u_company) {
            this.u_company = u_company;
        }
    }
    

      UserService

    package com.mstf.service;
    
    import com.mstf.dao.UserDao;
    
    import com.mstf.entity.Detail;
    import com.mstf.entity.User;
    
    import java.sql.Timestamp;
    
    import java.util.List;
    
    
    public class UserService {
        private static User user;
        private static Detail detail;
    
        // 登录
        public static boolean userLogin(String u_no, String u_pwd)
            throws Exception {
            user = new User();
            user.setU_no(u_no);
            user.setU_pwd(u_pwd);
    
            return UserDao.queryLogin(user);
        }
    
        // 查询用户基本信息
        public static List<User> userInfo(String u_no) throws Exception {
            user = new User();
            user.setU_no(u_no);
    
            return UserDao.queryUserInfo(user);
        }
    
        // 添加详情
        public static int add(String[] d_city, String[] d_whither, String[] d_type,
            String[] d_intent, Timestamp[] d_start_date, Timestamp[] d_stop_date,
            int[] d_business_number, String u_no) throws Exception {
            user = new User();
            user.setU_no(u_no);
            detail = new Detail();
            detail.setD_city(d_city);
            detail.setD_whither(d_whither);
            detail.setD_type(d_type);
            detail.setD_intent(d_intent);
            detail.setD_start_date(d_start_date);
            detail.setD_stop_date(d_stop_date);
            detail.setD_business_number(d_business_number);
            detail.setUser(user);
    
            return UserDao.add(detail);
        }
    }
    

      struts.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts PUBLIC
            "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
            "http://struts.apache.org/dtds/struts-2.3.dtd">
    
    <struts>
    	<!-- 热部署 -->
    	<constant name="struts.devMode" value="true"></constant>
    	<!-- 指定语言 -->
    	<constant name="struts.locale" value="zh_CN"></constant>
    	<!-- 指定编码 -->
    	<constant name="struts.i18n.encoding" value="utf-8"></constant>
    	<!-- 是否支持动态方法调用 -->
        <constant name="struts.enable.DynamicMethodInvocation" value="true"/>
    
    	<package name="mstf" extends="struts-default" namespace="/">
    		<!-- 默认界面 -->
    	<!--<default-action-ref name="login"></default-action-ref>-->
    		<action name="login">
    			<result>/login.jsp</result>
    		</action>
    		
    		<action name="UserAction" class="com.mstf.action.UserAction">
    			<!-- 登录 -->
    			<result name="loginSucc">/index.jsp</result>
    			<result name="fail">/login.jsp</result>
    			<!-- 退出登录 -->
    			<result name="outSucc">/login.jsp</result>
    			<!-- 用户信息 -->
    			<result name="infoSucc">/index.jsp</result>
    			<!-- 添加出差详情 -->
    			<result name="addSucc" type="redirectAction">
    				<param name="actionName">UserAction!userInfo</param>
    			</result>
    			<result name="addFail" type="redirectAction">
    				<param name="actionName">UserAction!userInfo</param>
    			</result>
    		</action>
    	</package>
    
    </struts>
    

      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">
    
        <!-- 过滤器 用于初始化struts2 -->
        <filter>
            <filter-name>struts2</filter-name>
            <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
        </filter>
    
        <!-- 用于struts2 的过滤器映射 -->
        <filter-mapping>
            <filter-name>struts2</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
    
    </web-app>
    

      index.css

    .center{text-align: center;}
    .login-page {
       360px;
      padding: 8% 0 0;
      margin: auto;
    }
    .form {
      position: relative;
      z-index: 1;
      background: #FFFFFF;
      max- 360px;
      margin: 0 auto 100px;
      padding: 45px;
      text-align: center;
      box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.2), 0 5px 5px 0 rgba(0, 0, 0, 0.24);
    }
    .form input {
      font-family: "Roboto", sans-serif;
      outline: 0;
      background: #f2f2f2;
       100%;
      border: 0;
      margin: 0 0 15px;
      padding: 15px;
      box-sizing: border-box;
      font-size: 14px;
    }
    .form button {
      font-family: "Microsoft YaHei","Roboto", sans-serif;
      text-transform: uppercase;
      outline: 0;
      background: #4CAF50;
       100%;
      border: 0;
      padding: 15px;
      color: #FFFFFF;
      font-size: 14px;
      -webkit-transition: all 0.3 ease;
      transition: all 0.3 ease;
      cursor: pointer;
    }
    .form button:hover,.form button:active,.form button:focus {
      background: #43A047;
    }
    .form .message {
      margin: 15px 0 0;
      color: #b3b3b3;
      font-size: 12px;
    }
    .form .message a {
      color: #4CAF50;
      text-decoration: none;
    }
    .form .register-form {
      display: none;
    }
    .container {
      position: relative;
      z-index: 1;
      max- 300px;
      margin: 0 auto;
    }
    .container:before, .container:after {
      content: "";
      display: block;
      clear: both;
    }
    .container .info {
      margin: 50px auto;
      text-align: center;
    }
    .container .info h1 {
      margin: 0 0 15px;
      padding: 0;
      font-size: 36px;
      font-weight: 300;
      color: #1a1a1a;
    }
    .container .info span {
      color: #4d4d4d;
      font-size: 12px;
    }
    .container .info span a {
      color: #000000;
      text-decoration: none;
    }
    .container .info span .fa {
      color: #EF3B3A;
    }
    body {
      background: #76b852; /* fallback for old browsers */
      background: -webkit-linear-gradient(right, #76b852, #8DC26F);
      background: -moz-linear-gradient(right, #76b852, #8DC26F);
      background: -o-linear-gradient(right, #76b852, #8DC26F);
      background: linear-gradient(to left, #76b852, #8DC26F);
      font-family: "Roboto", sans-serif;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;      
    }
    .shake_effect{
    	-webkit-animation-name: shake;
    	animation-name: shake;
    	-webkit-animation-duration: 1s;
    	animation-duration: 1s;
    }
    @-webkit-keyframes shake {
      from, to {
    	-webkit-transform: translate3d(0, 0, 0);
    	transform: translate3d(0, 0, 0);
      }
    
      10%, 30%, 50%, 70%, 90% {
    	-webkit-transform: translate3d(-10px, 0, 0);
    	transform: translate3d(-10px, 0, 0);
      }
    
      20%, 40%, 60%, 80% {
    	-webkit-transform: translate3d(10px, 0, 0);
    	transform: translate3d(10px, 0, 0);
      }
    }
    
    @keyframes shake {
      from, to {
    	-webkit-transform: translate3d(0, 0, 0);
    	transform: translate3d(0, 0, 0);
      }
    
      10%, 30%, 50%, 70%, 90% {
    	-webkit-transform: translate3d(-10px, 0, 0);
    	transform: translate3d(-10px, 0, 0);
      }
    
      20%, 40%, 60%, 80% {
    	-webkit-transform: translate3d(10px, 0, 0);
    	transform: translate3d(10px, 0, 0);
      }
    }
    p.center{
    	color: #fff;font-family: "Microsoft YaHei";
    }
    

      index.js

    var index=0;
    function del_detail(val){
    	if(index==0){
    		alert("最后一个不能删");
    	}else{
    		if(index>0){
    		$(val).parent().parent().parent().parent().parent().remove();
    		index--;
    		}
    	}
    }
    function add_detail(){
    	if(index==1){
    		alert("最多只能添加2个");
    	}else{
    		if(index<1){
    		$("#business_detail").clone().insertAfter("#business_detail_new");
    		index++;
    		}
    	}
    }
    
    /* 以下为省市级联 */	
    var array = new Array();
    	array["湖北省"] = ["潜江","荆门","荆州","武汉","孝感","十堰","襄阳","黄冈","恩施","天门"];
    	array["湖南省"] = ["海南","海口"];
    function a(){
    	for (var index in array) {
    		var opt = document.createElement("option");
    		opt.value = index;
    		opt.text = index;
    		document.getElementById("sel").appendChild(opt);
    	}
    	c();
    }
    
    function b(){
    	document.getElementById("selone").innerHTML="";
    	var sheng = document.getElementById("sel").value;
    	for (var i=1;i<sheng.length;i++) {
    		var opt = document.createElement("option");
    		opt.value = array[sheng][i-1];
    		opt.text = array[sheng][i-1];
    		document.getElementById("selone").appendChild(opt);
    	}
    	
    }
    
    function c(){
    	document.getElementById("selone").innerHTML="";
    	var sheng = document.getElementById("sel").value;
    	var shi=array[sheng];
    	for (var i=0;i<shi.length;i++) {
    		var opt=document.createElement("option");
    		opt.value=shi[i];
    		opt.text=shi[i];
    		document.getElementById("selone").appendChild(opt);
    	}
    }
    

      index.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>出差申请表</title>
    <script src="js/jquery-2.1.1.min.js" type="text/javascript"></script>
    <script src="js/index.js" type="text/javascript"></script>
    <style type="text/css">
    	.showText{
    		border: none;
    		margin-left: 5px;
    		margin-bottom: 2px;
    	}
    </style>
    </head>
    <body onload="a()">
    	<center>
    		<h1>出差申请表</h1>
    		<h4>
    			<font color="red">当前登录用户:${sessionScope.u_no}</font>
    			<a href="UserAction!outLogin">退出登录</a>
    		</h4>
    		
    		<fieldset style=" 600px">
    			<legend>
    				<h2>申请人信息</h2>
    			</legend>
    		
    		<table>
    			<tr>
    				<td>
    					
    				</td>
    			</tr>
    			<!--个人信息-->
    			<c:forEach items="${userList}" var="user">
    			<tr>
    				<td>申请人:
    					<input value="${user.u_name}" class="showText" readonly="readonly">
    				</td>
    				<td>工号:
    					<input value="${user.u_number}" class="showText" readonly="readonly">
    				</td>
    			</tr>
    			<tr>
    				<td>部门:
    					<input value="${user.u_post}" class="showText" readonly="readonly">
    				</td>
    				<td>等级:
    					<input value="${user.u_lv}" class="showText" readonly="readonly">
    				</td>
    			</tr>
    			<tr>
    				<td>职位:
    					<input name="user_post_name" value="${user.u_position}" class="showText" readonly="readonly">
    				</td>
    				<td>所属公司:
    					<input name="user_company" value="${user.u_company}" class="showText" readonly="readonly">
    				</td>
    			</tr>
    			</c:forEach>
    		</table>
    		</fieldset>
    		<br />
    		<!--出差明细-->
    		<form action="UserAction!add" method="post">
    		<fieldset style=" 600px" id="business_detail">
    			<legend>
    				<h2>出差明细</h2>
    			</legend>
    		<table>
    			<tr>
    				<td>
    					<font color="red">*</font>
    					出发城市:
    					<input name="detail.d_city">
    				</td>
    				<td>
    					<input type="button" onclick="del_detail(this)" value="删除">
    				</td>
    			</tr>
    			<tr>
    			
    				<td>
    					<font color="red">*</font>出差地点:
    					省份:<select id="sel" onchange="c()" name="sheng"></select>
    					城市:<select id="selone" name="shi"></select>					
    				</td>
    			</tr>
    			<tr>
    				<td>
    					<font color="red">*</font>
    						出差类型:
    						<select name="detail.d_type">
    							<option value="出差">出差</option>
    						</select>
    				</td>
    			</tr>
    			<tr>
    				<td colspan="2">
    					<font color="red">*</font>
    						出差目的:
    						<textarea name="detail.d_intent" placeholder="目的" style=" 500px; height: 100px;"></textarea>
    				</td>
    			</tr>
    
    			<tr>
    				<td>
    					<font color="red">*</font>
    						预计时间:
    					<input type="datetime-local" value="2015-09-24T13:00:00" name="detail.d_start_date"/>
    				</td>
    				<td>
    					<input type="datetime-local" value="2015-09-24T13:00:00" name="detail.d_stop_date"/>
    				</td>
    			</tr>
    			<tr>
    				<td>
    					预计出差天数 :<input name="detail.d_business_number" placeholder="预计出差天数" />
    				</td>
    			</tr>
    		</table>
    		</fieldset>
    
    		<div id="business_detail_new"></div>
    
    		<br> 
    		<input type="button" onclick="add_detail()" value="增加"/>
    		<input type="submit" value="提交" />
    		<font color="red">${sessionScope.addMsg}</font>
    		</form>
    	</center>
    </body>
    </html>
    

      login.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html lang="zh">
    <head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>登录•</title>
    <link href="css/index.css" rel="stylesheet" type="text/css"/>
    <script src="js/jquery-2.1.1.min.js" type="text/javascript"></script>
    <script src="js/index.js" type="text/javascript"></script>
    </head>
    <body>
    <div class="htmleaf-container">
    	<div id="wrapper" class="login-page">
    	  <div id="login_form" class="form">
    		<form class="login-form" action="UserAction!login" method="post">
    		  <input type="text" placeholder="帐号" id="user_name" name="user.u_no"/>
    		  <input type="password" placeholder="密码" id="password" name="user.u_pwd"/>
    		  <input type="submit" value="登录" id="login">
    		  <p class="message">
    		  	还没账号?
    		  	<a href="#">立即注册</a>
    		  </p>
    		  <p>
    			<font color="red">${requestScope.msg}</font>
    		  </p>
    		</form>
    	  </div>
    	</div>
    </div>
    </body>
    </html>
    

      

  • 相关阅读:
    10年测试专家深度解读接口测试
    测试技术大牛谈成长经历:一个好的软件测试工程师应该做到这些!
    一位测试老鸟的工作经验分享
    又一名程序员倒下,网友:我们只是新时代农民工
    软件测试工程师这样面试,拿到offer的几率是80%
    App测试流程及测试点(个人整理版)
    自动化测试是什么?
    软件测试工程师的职业技能分析
    月薪15k的测试员需要学习什么技术?
    面向对象
  • 原文地址:https://www.cnblogs.com/ceet/p/6603352.html
Copyright © 2011-2022 走看看