struts实战--登录功能实现

struts实现登录功能

一.使用struts2提供的表单标签来改造页面。

            WebRoot/login/login.jsp
        
            <form>-------------------<s:form>
            <input type="text">------<s:textfield>
            <input type="password">---<s:password>
            <input type="submit">-----<s:submit>
            <input type="reset">------<s:reset>
           
            
            1.改造form

                <s:form id="loginAction_home" name="form1" action="user_login" namespace="/" target="_parent" method="post">

            2.改造登录名

                <s:textfield name="logonName" value="" id="logonName" cssClass="text" cssStyle="width: 160px;"/>

            3.改造登录密码
                <s:password  name="logonPwd" id="logonPwd" cssClass="text" cssStyle="width: 160px;"/>

                    密码框默认不回显示.需要设置属性showPassword="true"

            4.<s:submit name="submit" value="登录" cssClass="buttoninput"/>

         5.<s:reset name="reset" value="取消" cssClass="buttoninput"/>
            
            注意:struts2中的表单标签,有默认的主题xhtml.如果不想要添加任何修饰,只需要将主题修改为simple.
                1.全局
                    在struts.xml文件中配置一个常量
                    <constant name="struts.ui.theme" value="simple"></constant>
                2.局部
                    针对于某一个form.
                    <s:form theme="simple">
                3.局部

                    可以给任意的表单组件去指定theme属性值。

login.jsp:

<%@ page language="java" pageEncoding="UTF-8"%>
<%@taglib uri="/struts-tags" prefix="s"%>
<script type="text/javascript">
function ini(){
   document.form1.logonName.focus();
}
</script>

<html>
	<head>
		<meta http-equiv="Content-Language" content="zh-cn">
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<title></title>
		<link href="${pageContext.request.contextPath}/css/Style.css" rel="stylesheet" type="text/css">
	</head>

	<body onload="ini()">
		<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
			<tr>
				<td align="center">
					<table width="452" height="290" border="0" cellpadding="0" cellspacing="0">
						<tr>
							<td bgcolor="#FFFFFF">
								<table width="452" height="290" border="0" cellpadding="0" cellspacing="0">
									<tr>
										<td height="74">
											<img src="${pageContext.request.contextPath}/images/logintitle.gif">
										</td>
									</tr>
									<tr>
										<td align="center" valign="bottom" background="${pageContext.request.contextPath}/images/loginbg.gif">
											<s:form action="user_login" method="post" theme="simple" namespace="/" id="loginAction_home" name="form1" target="_top">
												<table border="0" align="center" cellpadding="2" cellspacing="0">
													<tr align="center">
														<td height="30" colspan="2" style="border-bottom: 1px dotted #cccccc">
															<strong style="font-size: 14px;">请登录</strong>
															<!-- 错误信息回显 -->
															<s:fielderror /> <s:actionerror/>
														</td>
													</tr>
													<tr>
														<td height="30" nowrap>
															<font color="000F60"><strong>用户名:</strong> </font>
														</td>
														<td>
															<s:textfield name="logonName" id="logonName" cssClass="text" cssStyle="width: 160px;"/>
														</td>
													</tr>
													<tr>
														<td height="30" nowrap>
															<strong><font color="000F60">密码: </font> </strong>
														</td>
														<td>
															<s:password name="logonPwd" id="logonPwd"  cssClass="text" cssStyle="width: 160px;" />
														</td>
													</tr>
													<tr>
														<td height="30" nowrap colspan="2">
															<strong><font color="red"></font> </strong>
														</td>
													</tr>
													<tr>
														<td height="30">
														</td>
														<td>
															<input type="submit" name="submit" value="登陆" class="buttoninput"/>
															<input type="reset" name="reset" value="取消" class="buttoninput"/>
														</td>
													</tr>
												</table>
											</s:form>




											<table width="100%" border="0" cellspacing="0" cellpadding="0">
												<tr>
													<td height="30" align="center">
													</td>
												</tr>
												<tr>
													<td height="23" align="center"></td>
												</tr>
											</table>
										</td>
									</tr>

								</table>
							</td>
						</tr>
					</table>
				</td>
			</tr>
		</table>
	</body>
</html>

            
 二.需要使用xml配置方式对数据进行校验。
            用户名 非空,3-12位
            密码  非空

            

            1.在UserAction所在包下创建一个UserAction-validation.xml

<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE validators PUBLIC
  		"-//Apache Struts//XWork Validator 1.0.3//EN"
  		"http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
<validators>
	<field name="logonName">
		<field-validator type="requiredstring">
			<message key="logonName.required"></message>
		</field-validator>
		<field-validator type="stringlength">
			<param name="minLength">3</param>
			<param name="maxLength">12</param>
			<message key="logonName.length"></message>
		</field-validator>
	</field>
	<field name="logonPwd">
		<field-validator type="requiredstring">
			<message key="logonPwd.required"></message>
		</field-validator>
	</field>
</validators>  		

            2.在xml文件中添加dtd约束
              

 <!DOCTYPE validators PUBLIC
                "-//Apache Struts//XWork Validator 1.0.3//EN"
                "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">


            3.对属性进行校验
             

  <field name="logonName">
                    <field-validator type="requiredstring">
                        <message>用户名不能为空</message>
                    </field-validator>

                    <field-validator type="stringlength">
                        <param name="maxLength">12</param>
                        <param name="minLength">3</param>
                        <message>用户名长度必须在${minLength}到${maxLength}之间</message>
                    </field-validator>
                </field>
                <field name="logonPwd">
                    <field-validator type="requiredstring">
                        <message>密码不能为空</message>
                    </field-validator>
                </field>
                在页面上通过<s:fielderror>


            
        
        3.登录成功,将用户存储到session,在页面上显示用户。

            top.jsp   ${user.userName } 显示当前登陆用户

	/**
	 * 员工登陆
	 * 
	 * @return
	 */
	@InputConfig(resultName = "loginINPUT")
	// 修改workflow拦截器跳转视图
	public String login() {
		// 登陆数据 已经在 user中,传递业务层,查询
		UserService userService = new UserService();
		User logonUser = userService.login(user);
		// 判断是否登陆成功
		if (logonUser == null) {
			// 登陆失败
			this.addActionError(this.getText("loginfail"));
			return "loginINPUT";
		} else {
			// 登陆成功
			ServletActionContext.getRequest().getSession()
					.setAttribute("user", logonUser);
			return "loginSUCCESS";
		}
	}

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hello-java-maker

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值