在Struts2中,使用simple主题时,当表单校验出错后,错误信息会显示在
1. 引入CSS文件
在JSP中添加如下代码引入CSS文件:
<head>
<link rel="stylesheet" type="text/css" href="style.css"/>
</head>
其中style.css
为你的自定义CSS文件名。
2. 自定义样式
在CSS文件中添加以下代码,移除
.s2fielderror {
display: block;
color: red;
font-size: 12px;
}
可以看到,我们将.s2fielderror的样式进行了修改,包含了显示属性、颜色和字体大小。
3. Struts配置文件修改
在struts.xml文件中添加以下配置,用于在simple主题下使用自定义样式。
<constant name="struts.ui.theme" value="simple"/>
<package name="default" extends="struts-default">
<result-types>
<result-type name="velocity" class="org.apache.struts2.dispatcher.ServletRedirectResult"/>
</result-types>
<action name="test" class="com.example.TestAction">
<result name="success">/test.jsp</result>
</action>
</package>
<interceptors>
<interceptor name="theme" class="com.opensymphony.xwork2.interceptor.StaticParametersInterceptor">
<param name="parameters.0">theme=default</param>
</interceptor>
<interceptor-stack name="defaultStack">
<interceptor-ref name="theme"/>
<interceptor-ref name="validation">
<param name="excludeMethods">input,back,cancel,browse</param>
</interceptor-ref>
<interceptor-ref name="workflow"/>
</interceptor-stack>
</interceptors>
其中,struts.ui.theme
为simple,/test.jsp
为表单所处的JSP路径,com.example.TestAction
为Action类路径。
4. 示例
下面是一个简单的示例代码:
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>Struts 2</title>
<link rel="stylesheet" type="text/css" href="style.css"/>
</head>
<body>
<s:form action="test">
<s:textfield name="username" label="Username"/>
<br>
<s:password name="password" label="Password"/>
<br>
<s:submit/>
<s:fielderror/>
</s:form>
</body>
</html>
public class TestAction extends ActionSupport {
private String username;
private String password;
public String execute() {
if (!"admin".equals(username) || !"admin".equals(password)) {
addFieldError("username", "用户名或密码不正确");
return INPUT;
}
return SUCCESS;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
其中,当登录验证不通过时,我们会调用addFieldError
方法,传入参数username
和用户名或密码不正确
,表示这个错误信息针对username字段。最后我们会返回INPUT
结果,告知Struts2返回表单校验页面。
快速测试
现在我们根据以上步骤完成了自定义错误信息样式的配置,可以用以下代码快速测试:
<html>
<head>
<title>Struts 2</title>
<style type="text/css">
.s2fielderror {
display: block;
color: red;
font-size: 12px;
}
</style>
</head>
<body>
<form name="loginForm" action="login.action" method="post">
<table>
<tr>
<td>Username:</td>
<td><input type="text" name="username"><br>
<s:fielderror fieldName="username"></s:fielderror></td>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" name="password"><br>
<s:fielderror fieldName="password"></s:fielderror></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Login"></td>
</tr>
</table>
</form>
</body>
</html>
以上是如何移除Struts2 simple主题下默认
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:struts2中simple主题下