小编kak*_*i99的帖子

如何使用struts2控制转换错误

我有一个包含3个字段的表单,两个字符串(一个选择和一个文本字段)和一个int.当我在字段中输入一个字母或其他东西而不是int(52.4或aaa)时,我得到了一个我无法"捕获"的错误,我的选择消失并在消息框上我收到了来自我的验证xml文件的消息(在法语)和另一个英语(我想由struts发送).

tomcat中的错误:

(ognl.OgnlValueStack  60 ) Error setting expression 'userSize' with value '[Ljava.lang.String;@14aa6c3'
Run Code Online (Sandbox Code Playgroud)

消息框上的错误:

Invalid field value for field "userSize".
test size
Run Code Online (Sandbox Code Playgroud)

JSP代码:

<s:form action="sendUserCreation" method="POST">
<s:action namespace="/" name="civilityPicklist" executeResult="true"/><br />
<s:textfield name="lastName" /><br />
<s:textfield name="userSize" /><br />
Run Code Online (Sandbox Code Playgroud)

struts.xml代码:

<action name="createUser">
    <result>/jsp/user/create.jsp</result>
</action>
<action name="sendUserCreation" class="fr.action.UserAction" method="createUser">
    <result>/jsp/splash.jsp?messKey=${messKey}</result>
    <result name="input">/jsp/user/create.jsp</result>
</action>
<action name="civilityPicklist" class="fr.imaps.oxygene.portal.action.CivilityPicklistAction">
    <result>/jsp/user/civilityPicklist.jsp</result>
</action>
Run Code Online (Sandbox Code Playgroud)

UserAction-validation.xml代码:

<validators>
    <field name="userSize">
        <field-validator type="conversion">
            <message>test size</message>
        </field-validator>      
    </field>
</validators>
Run Code Online (Sandbox Code Playgroud)

UserAction代码:

private int userSize;

public int getUserSize() {
    return userSize;
}

public void …
Run Code Online (Sandbox Code Playgroud)

struts2

5
推荐指数
1
解决办法
2179
查看次数

Struts2条件验证

我有一个带有5个"名称"字段的表单,表示字符串选项卡,例如

obj.props[0].name
obj.props[1].name
obj.props[2].name
obj.props[3].name
obj.props[4].name
Run Code Online (Sandbox Code Playgroud)

但这些领域,如果填补,必须是不同的.所以我做了一个xml验证器.我试过这样的事情:

<validator type="expression">
    <param name="expression">!obj.props[0].name.equals(obj.props[1].name) || 
    !obj.props[0].name.equals(obj.props[2].name) || 
    !obj.props[0].name.equals(obj.props[3].name) || 
    !obj.props[0].name.equals(obj.props[4].name)...</param>
    <message key="create.obj.error.propsdiff" />
    </validator>
Run Code Online (Sandbox Code Playgroud)

但它不起作用.你对struts2验证中如何使用条件有任何想法吗?

java validation conditional struts2

1
推荐指数
1
解决办法
577
查看次数

标签 统计

struts2 ×2

conditional ×1

java ×1

validation ×1