首先我们需要找到 cas 的原始登录页面, 先不要删除原始登录页面, 因为我们需要在我们的登入页面中引入原始登录页面中的相关资源, 将原始登录页面重新随意取个名字即可, cas 的原始登录页面位置如下:
将我们需要的登录页面拷贝到 cas 的原始登录页面的路径下, 并重命名为 cas 的原始登录页面的名字, 包括后缀.
将 cas 的原始登录页面中的 jsp 相关文件引入到我们需要的登录页面中(如果我们需要的登录页面是HTML):
<%@ page pageEncoding="UTF-8" %>
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
将我们页面需要用到的样式图片等资源也拷贝到 cas 目录下:
将我们页面中的 form 表单中相关输入框等替换成原来页面中的, 样式还是保留我们的样式:
<!-- <form class="sui-form"> 我们的 form 表头 -->
<form:form class="sui-form" method="post" id="fm1" commandName="${commandName}" htmlEscape="true"> <!-- 还是替换成原来的 form 表头 引入我们的样式 -->
<div class="input-prepend"><span class="add-on loginname"></span>
<!-- <input id="prependedInput" type="text" placeholder="邮箱/用户名/手机号" class="span2 input-xfat"> -->
<form:input placeholder="邮箱/用户名/手机号" class="span2 input-xfat" id="username" size="25" tabindex="1" accesskey="${userNameAccessKey}" path="username" autocomplete="off" htmlEscape="true" />
</div>
<div class="input-prepend"><span class="add-on loginpwd"></span>
<!-- <input id="prependedInput" type="password" placeholder="请输入密码" class="span2 input-xfat"> -->
<form:password placeholder="请输入密码" class="span2 input-xfat" id="password" size="25" tabindex="2" path="password" accesskey="${passwordAccessKey}" htmlEscape="true" autocomplete="off" />
</div>
<div class="setting">
<label class="checkbox inline">
<input name="m1" type="checkbox" value="2" checked="">自动登录
</label>
<span class="forget">忘记密码?</span>
<!-- 用户名 密码输入错误提示框 -->
<form:errors path="*" id="msg" cssClass="errors" element="div" htmlEscape="false" />
</div>
<div class="logined">
<!-- <a class="sui-btn btn-block btn-xlarge btn-danger" href="home-index.html" >登 录</a> -->
<input type="hidden" name="lt" value="${loginTicket}" />
<input type="hidden" name="execution" value="${flowExecutionKey}" />
<input type="hidden" name="_eventId" value="submit" />
<input class="sui-btn btn-block btn-xlarge btn-danger" name="submit" accesskey="l" value="登 录" tabindex="4" type="submit" />
</div>
<!-- </form> -->
</form:form>
用户名密码错误提示
1. 在我们的登录页面引入错误提示框
<form:errors path="*" id="msg" cssClass="errors" element="div" htmlEscape="false" />
测试:输入错误的用户名和密码,提示是英文。这个提示信息是在 WEB-INF\classes 目录下的 messages.properties 文件中:
authenticationFailure.AccountNotFoundException=Invalid credentials.
authenticationFailure.FailedLoginException=Invalid credentials.
2. 将这个提示信息拷贝至 messages_zh_CN.properties 中末尾, 并重新赋值中文二进制字段:
authenticationFailure.AccountNotFoundException=\u7528\u6237\u540D\u4E0D\u5B58\u5728.
authenticationFailure.FailedLoginException=\u5BC6\u7801\u9519\u8BEF.
第一个是用户名不存在时的错误提示第二个是密码错误的提示
3. 修改 WEB-INF 下的 cas-servlet.xml 文件中的读取文件配置:
p:defaultLocale="zh_CN"
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver" p:defaultLocale="zh_CN" />