2013-01-09 128 views
2

我目前使用Struts2標籤爲我的表單,並顯示其錯誤消息。我的問題是,在Struts2標籤中顯示錯誤消息的默認標記是<ul>標記的用法。無論如何,我可以改變這一點嗎?我希望錯誤消息顯示爲<span>不是列表。Struts2標籤:Fielderrors標籤

我該怎麼做到這一點?

回答

3

另一種選擇是更改UL元素的CSS。

只有當您特別關心外觀而不是DOM本身時,此方法纔有效。

+0

偉大的建議!忘了那個。我只關心它的外觀。 – user962206

1

這裏是一個教程,展示Struts 2的ActionError和ActionMessage類的使用。

http://www.mkyong.com/struts2/struts-2-actionerror-actionmessage-example/

  1. ActionError - 經由<的顯示器 - 用於發送錯誤反饋消息給用戶:actionerror />

    <s:if test="hasActionErrors()"> 
        <div class="errors"> 
        <s:actionerror/> 
        </div> 
    </s:if> 
    
  2. ActionMessage的 - 被用來發送信息反饋信息給用戶,通過<顯示s:actionmessage />

    <s:if test="hasActionMessages()"> 
        <div class="welcome"> 
        <s:actionmessage/> 
        </div> 
    </s:if> 
    
+0

但這些生成li和ul作爲其標記?我不想生成錯誤消息ul – user962206

+0

你看過那個鏈接中的例子嗎?我不明白你在說什麼。你可以在這裏添加一些示例代碼來尋求支持。 –

+0

你應該在發佈前真正閱讀這個問題。不要發佈里程的答案並混淆他人。問題是關於fieldError標籤,而不是actionError或actionMessage ..是不是很容易區分? –

3

標籤根據他們的主題呈現。然後問題變成:你如何改變主題?您可以更改標籤 (將標籤上的主題屬性設置爲簡單),頁面,請求或一般。

http://struts.apache.org/2.2.1/docs/struts-2-themes.html

個人而言,我喜歡寫HTML,那就是我不喜歡從Struts2的默認主題的任何「幫助」。所以在我的struts.xml中,我簡單地使用:

<constant name="struts.ui.theme" value="simple" /> 

Web開發人員應該知道html。

更新

一般採用YUI reset.css所以我可能錯過了這個...

如果您在操作延長了ActionSupport有一個getFieldErrors()方法,所以你可以使用<s:property value='fieldError["field_name"]'/>將返回相關的錯誤消息字符串當然沒有任何格式。

它的可讀性不如<s:fielderror/>標籤...畢竟我們需要始終使用屬性標籤。

+0

我的主題很簡單,但是當我使用fielderrors標籤時,它會爲錯誤列表生成一個ul列表,這是我不想要的。 – user962206

3

您可以覆蓋用於呈現錯誤的模板文件。將actionerror.ftlfielderror.ftl文件從simple主題從struts2-core jar複製到您的應用程序,並將其修改爲不使用ul/li標籤。

3

我有同樣的問題,我用下面的代碼來解決我的問題

<s:if test="fieldErrors.get('email').size() > 0"> 
    <s:property value="fieldErrors.get('email').get(0)"/> 
</s:if> 

其中,email是我的字段的名稱。這樣我們不必修改CSS。