【问题标题】:The validation and theme in Struts 2Struts 2 中的验证和主题
【发布时间】:2015-07-12 16:54:39
【问题描述】:

我正在做一个 Struts 2 项目,问题是我正在使用 <constant name="struts.ui.theme" value="simple"/> 在我的struts.xml 中用于我的 JSP 页面的布局(例如,根据应用的 CSS 在一行中使用 tablecode 安排 2-3 个文本文件),但由于以下原因,我无法在同一个 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 验证?

【问题讨论】:

    标签: java css validation jsp struts2


    【解决方案1】:

    当然! 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:我猜这些是拼写错误,错误只在问题中,而不是在实际代码中,但你有:

    • 自动关闭&lt;td/&gt;,
    • 一个未关闭的&lt;tr&gt;,和
    • &lt;tr&gt; 和一个 &lt;td&gt; 没有指定 colspan="2"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 2011-08-03
      相关资源
      最近更新 更多