2017-06-28 135 views
0

在我的jsp代碼中,有一個輸入字段,我使用了兩次相同的屬性,但值不同(在<sj:submit/>中,我在下面的代碼中使用了兩次「disabled」屬性) 。 admin和operator是從後端傳遞的2個布爾值。如何在WildFly 10中禁用JSP錯誤檢查

<s:set id="admin" var="admin"><s:property value="admin" default="true"/></s:set> 
<s:set id="operator" var="operator"><s:property value="operator" default="true"/></s:set>  

<sj:submit button="true" value="Submit" name="submit" id="subview" onClick="todo()" 
    disabled="#admin" disabled="#operator" /> 

此代碼工作的罰款爲WebLogic Server,但使用此代碼時wildfly 10發生,因爲這個異常的代碼拋出一個異常org.apache.jasper.JasperException「jsp.error.attribute.duplicate」 2「禁用」屬性。因爲我必須同時使用「禁用」屬性,並且我已經在很多頁面中使用了這些屬性,所以我無法逐一更改它們。相反,有沒有辦法在使用wildfly 10時禁用jsp錯誤檢查?

+0

您的' >>>>「<<<<< button =」true「'有一個雙引號」這是一個錯字? –

+0

這是一個錯誤@Jorge和我刪除它 – SDS

回答

0

經過一番研究,我找到了這個問題的答案。答案是「沒有禁用jsp錯誤檢查的方式在wildfly 10中,爲了避免出現'jsp.error.attribute.duplicate'錯誤」。如果您檢查了底下的屬性解析方法,您可以看到,在屬性解析方法中,它通過使用'UniqueAttributesImpl'對象命名爲'來檢查該屬性是否是唯一的屬性, attrs'編譯期間。

Attributes parseAttributes(boolean pageDirective) throws JasperException { 
     UniqueAttributesImpl attrs = new UniqueAttributesImpl(pageDirective); 

     reader.skipSpaces(); 
     int ws = 1; 

     try { 
      while (parseAttribute(attrs)) { 
       if (ws == 0 && STRICT_WHITESPACE) { 
        err.jspError(reader.mark(), 
          "jsp.error.attribute.nowhitespace"); 
       } 
       ws = reader.skipSpaces(); 
      } 
     } catch (IllegalArgumentException iae) { 
      // Duplicate attribute 
      err.jspError(reader.mark(), "jsp.error.attribute.duplicate"); 
     } 

     return attrs; 
    } 

如果發現這個屬性已使用一次以上,則拋出IllegalArgumentException異常,與消息「jsp.error.attribute.duplicate」。

相關問題