2017-06-22 52 views
0

確定這裏敲我的頭撞牆的最後2天爲我的驗證信息將在JSP不輸出雖然驗證顯然是發生了......的Struts 2.5:確認發生,但沒有消息顯示

我有設置爲必需的字段簡單的驗證通過一個動作-validation.xml中

<validators> 
    <field name="firstname"> 
     <field-validator type="requiredstring"> 
      <message>First name is required</message> 
     </field-validator> 
    </field> 
</validators> 

Action類延伸ActionSupport的和接口ServletRequestAware,製備的,模型驅動

執行,製備和驗證方法已全部被內重寫的動作類和它的配置是

<package name="main" namespace="/" extends="struts-default"> 
    <action name="myform" class="com.uk.MyFormAction"> 
     <interceptor-ref name="store"> 
      <param name="operationMode">STORE</param> 
     </interceptor-ref> 
     <interceptor-ref name="defaultStack" /> 

     <result name="update">s2/user.jsp</result> 
     <result name="input">s2/user.jsp</result> 
    </action> 
</package> 

無論出於何種原因從validation.xml文件將在

<s:if test="hasActionErrors()"> 
    <s:actionerror /> 
</s:if> 

<s:textfield name="firstname" /> 

有頁面上的其他領域我的JSP中不輸出任何東西,我驗證只是試圖讓這個先工作。我已經添加了攔截器存儲區,它與type =「redirectAction」沒有區別,但是當它被添加到我的輸入結果中時,我在驗證和準備提交操作的方法之間會出現無限循環...

我確信實際的配置是正確的。當該字段存在時,提交會正確地進行,但當它爲空時,struts會重定向回JSP,但不會提供錯誤消息。

我現在完全沒有什麼可能是錯誤的想法,有什麼建議嗎?

編輯:順便說一句,如果我添加addActionError()viamy驗證功能,它正確地顯示在頁面上,但同樣缺少的validation.xml消息(也不應該)

而且struts.ui.theme=simple正在使用

最近的帖子我可以發現,涉及到我的問題可以是found here但是,攔截器的郵件似乎並沒有存儲或攔截我的郵件......我試圖通過打印getActionErrors集合的大小來輸出ActionErrors的數量在我的執行和驗證函數中返回0 ...我不確定是否應該返回validation.xml錯誤,如果工作correctl Ÿ

+0

如果您使用默認主題,則會顯示驗證消息。請參閱[此答案](https://stackoverflow.com/a/15496272/573032)。 –

+0

@羅曼哥抱歉,這對我沒有任何意義? Post似乎沒有引用任何主題,我的消息被寫入validation.xml。我嘗試刪除我的struts.properties,它把它設置爲默認(xhtml?),並沒有消息仍然出現。默認情況下,我的表單元素周圍的各種HTML我不想... –

+0

嗯,這對別人有意義,我不知道爲什麼你不能得到它。好的,因爲你的問題太廣泛了,我不能給你一個有效的答案,所以如果你有問題,你可以自己發佈。 –

回答

-1

在我想要的錯誤信息打印出來,我有以下代碼

<s:if test="hasActionErrors()"> 
    <s:actionerror /> 
</s:if> 

<s:if test="hasActionMessages()"> 
    <s:actionmessage /> 
</s:if> 

好以上的區域是的ActionErrors和ActionMessages不是現場錯誤。你還需要的是

<s:fielderror /> 

因爲我通過我的action-valiation.xml文件定義了字段錯誤!

通過this post

幫你還可以定義特定的字段位置。 This post解釋說...

+0

謝謝@AleksandrM! –