2017-08-09 52 views
0

我有jsp文件,它具有名爲userRole的屬性customtag,如下所示的companyID以及相應的tld文件和java文件來設置和獲取屬性值。當我嘗試加載頁面tomcat 8服務器拋出異常爲「無法找到setter方法的屬性:userRole」Tomcat 8 - 無法找到屬性設置方法

可以some1幫助我什麼是問題。下面是代碼片段

JSP文件

<dp:bankName 
     userRole='<%=request.getAttribute("user_role")%>' 
     companyID='${viewBean.companyID}' 
</dp:bankName> 

TLD文件

<tag> 
     <name>bankName</name> 
     <tag-class>xxx.xxx.xxx.xxx.DisplayBankNameTag</tag-class> 
     <body-content>JSP</body-content> 
       <attribute> 
      <name>companyID</name> 
      <required>false</required> 
      <rtexprvalue>true</rtexprvalue> 
     </attribute> 
     <attribute> 
      <name>userRole</name> 
      <required>true</required> 
      <rtexprvalue>true</rtexprvalue> 
     </attribute> 
    </tag> 

的java文件

private String companyID = null; 
private String userRole = null; 

public String getCompanyID() { 
    return companyID; 
} 

public void setCompanyID(String companyID) { 
    this.companyID = companyID; 
} 

public String getUserRole() { 
    return userRole; 
} 

public void setUserRole(Object userRole) { 
    if (null != userRole) { 
     this.userRole = (String) userRole; 
    } 
} 

回答

0

Tr的ÿ改變從:

public void setUserRole(Object userRole) { 

到:

public void setUserRole(String userRole) { 

另外,從this.userRole = (String) userRole;(String)除去。

+0

嗨,我已經嘗試過你的方法它的工作。你能告訴我什麼是問題,爲什麼我們應該把它從Object改爲String。我想知道這個 –

+0

背後的確切問題是什麼。請閱讀[文檔](https://www.tutorialspoint.com/jsp/jsp_custom_tags.htm)。 'type - 定義此屬性的Java類類型。默認情況下它假定爲String –