Struts 2 中的验证和主题
The validation and theme in Struts 2
我正在做一个 Struts 2 项目,问题是我正在使用
<constant name="struts.ui.theme" value="simple"/>
在我的 struts.xml
中用于我的 JSP 页面的布局(例如使用 tablecode 在一行中排列 2-3 个文本文件)根据 CSS 应用,但我不是由于 theme="simple"
.
,能够在同一 jsp 页面上显示验证错误
配置:
<struts>
<!-- Configuration for the default package. -->
<constant name="struts.ui.theme" value="simple"/>
<package name="default" extends="struts-default">
<action name="validateUser" class="login.LoginAction">
<result name="SUCCESS">/welcome.jsp</result>
<result name="input">/login.jsp</result>
</action>
</package>
</struts>
操作:
public class LoginAction extends ActionSupport{
private String username; // getter and setter
private String password; // getter and setter
@Override
public String execute() {
// some business logic here....
return "SUCCESS";
}
//simple validation
@Override
public void validate(){
if("".equals(getUsername())){
addFieldError("username", getText("username.required"));
}
if("".equals(getPassword())){
addFieldError("password", getText("password.required"));
}
}
}
查看:
<s:form action="validateUser" validate="true" >
<table>
<tr>
<td>username</td>
<td><s:textfield label="username" name="username" /><td/>
</tr>
<tr>
<td>password</td>
<td><s:password label="password" name="password" /><td/>
<tr>
<td> <s:submit label="submit" name="submit"/></td>
</tr>
</table>
</s:form>
有没有办法用我的 CSS 维护布局并使用 Struts 2 验证?
好的! XHTML 主题会自动为您的输入标签添加一个 fieldError
标签;
当使用 Simple 主题时,您需要手动添加它们,并为您的标签提供一个 id 以匹配它们(除非它是自动生成的,并且更难发现):
<td>
<s:textfield id="username" label="username" name="username" />
<s:fielderror fieldName="username" />
</td>
<td>
<s:password id="password" label="password" name="password" />
<s:fielderror fieldName="password" />
</td>
P.S:我猜这些是错别字,错误只出现在问题中,而不是实际代码中,但你有:
- 自闭
<td/>
,
- 未关闭
<tr>
,并且
- a
<tr>
有一个 <td>
没有指定 colspan="2"
。
我正在做一个 Struts 2 项目,问题是我正在使用
<constant name="struts.ui.theme" value="simple"/>
在我的 struts.xml
中用于我的 JSP 页面的布局(例如使用 tablecode 在一行中排列 2-3 个文本文件)根据 CSS 应用,但我不是由于 theme="simple"
.
配置:
<struts>
<!-- Configuration for the default package. -->
<constant name="struts.ui.theme" value="simple"/>
<package name="default" extends="struts-default">
<action name="validateUser" class="login.LoginAction">
<result name="SUCCESS">/welcome.jsp</result>
<result name="input">/login.jsp</result>
</action>
</package>
</struts>
操作:
public class LoginAction extends ActionSupport{
private String username; // getter and setter
private String password; // getter and setter
@Override
public String execute() {
// some business logic here....
return "SUCCESS";
}
//simple validation
@Override
public void validate(){
if("".equals(getUsername())){
addFieldError("username", getText("username.required"));
}
if("".equals(getPassword())){
addFieldError("password", getText("password.required"));
}
}
}
查看:
<s:form action="validateUser" validate="true" >
<table>
<tr>
<td>username</td>
<td><s:textfield label="username" name="username" /><td/>
</tr>
<tr>
<td>password</td>
<td><s:password label="password" name="password" /><td/>
<tr>
<td> <s:submit label="submit" name="submit"/></td>
</tr>
</table>
</s:form>
有没有办法用我的 CSS 维护布局并使用 Struts 2 验证?
好的! XHTML 主题会自动为您的输入标签添加一个 fieldError
标签;
当使用 Simple 主题时,您需要手动添加它们,并为您的标签提供一个 id 以匹配它们(除非它是自动生成的,并且更难发现):
<td>
<s:textfield id="username" label="username" name="username" />
<s:fielderror fieldName="username" />
</td>
<td>
<s:password id="password" label="password" name="password" />
<s:fielderror fieldName="password" />
</td>
P.S:我猜这些是错别字,错误只出现在问题中,而不是实际代码中,但你有:
- 自闭
<td/>
, - 未关闭
<tr>
,并且 - a
<tr>
有一个<td>
没有指定colspan="2"
。