Проверка и тема в Struts 2
Я работаю над проектом Struts 2, проблема в том, что я использую <constant name="struts.ui.theme" value="simple"/>
в моем struts.xml
для макета моей страницы JSP (например, размещение 2-3 текстовых файлов в одну строку с использованием табличного кода) в соответствии с примененным CSS, но я не могу показать ошибку проверки на той же странице JSP из-за 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?
1 ответ
Конечно! Тема XHTML автоматически добавит fieldError
тег для ваших входных тегов;
вместо этого, если вы используете простую тему, вам нужно добавить их вручную и дать идентификаторы тегам, чтобы они соответствовали им (если только он не будет автоматически сгенерирован и его будет сложнее обнаружить):
<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>
PS: Я полагаю, что это опечатки и ошибки только в вопросе, а не в реальном коде, но у вас есть:
- сам закрытие
<td/>
, - незамкнутый
<tr>
, а также <tr>
с одним<td>
безcolspan="2"
указано.