2014-01-17 149 views
3

如何向Liferay添加其他屬性。向Liferay添加其他語言屬性

我不想覆蓋現有的屬性。我想在現有的屬性

我這樣嘗試的頂部添加新的特性,但沒有運氣

<portlet> 
     <portlet-name>search</portlet-name> 
     <display-name>Search</display-name> 
     <portlet-class>org.springframework.web.portlet.DispatcherPortlet</portlet-class> 
     <init-param> 
      <name>contextConfigLocation</name> 
      <value>/WEB-INF/spring-config/search-portlet.xml</value> 
     </init-param> 
     <init-param> 
      <name>config-template</name> 
      <value>/WEB-INF/view/search/configuration.jsp</value> 
     </init-param>   
     <expiration-cache>0</expiration-cache> 
     <supports> 
      <mime-type>text/html</mime-type> 
      <portlet-mode>view</portlet-mode> 
     </supports> 
     <resource-bundle>Language</resource-bundle> 
     ............. 
</portlet> 

I have placed Language.properties file under src/main/resources/

然而,當我嘗試打印<liferay-ui:message key="test-lang-msg" />我沒有得到的值

Language.properties文件 test-lang-msg=Testing Language Properties File

+0

你會得到什麼:沒有,或只是關鍵,例如「測試琅味精」? –

回答

0

在回答時,您應該正確添加「resource-bundle」標籤。但是,在創建Resource Bundle文件時,我們也必須小心。

文檔根目錄/ WEB-INF/src目錄內創建 「資源」 包。在它的內部,創建一個名爲Language.properties的新文件。之後,您已準備好更新您的portlet.xml文件。在下面找到我的portlet.xml的副本。注意我所定義的資源包的標籤值的方式:resource.Language

<?xml version="1.0"?> 
<portlet-app xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd" version="2.0"> 

<portlet> 
    <portlet-name>birthday</portlet-name> 
    <display-name>Birthday</display-name>  
    <portlet-class> 
     com.test.exercise.customers.portlet.BirthdayPortlet 
    </portlet-class> 
    <init-param> 
     <name>view-template</name> 
     <value>/html/birthday/view.jsp</value> 
    </init-param>  
    <expiration-cache>0</expiration-cache> 
    <supports> 
     <mime-type>text/html</mime-type> 
     <portlet-mode>view</portlet-mode> 
    </supports> 
    <resource-bundle>resource.Language</resource-bundle> 
    <portlet-info> 
     <title>Birthday</title> 
     <short-title>Birthday</short-title> 
     <keywords></keywords> 
    </portlet-info>  
    <security-role-ref> 
     <role-name>administrator</role-name> 
    </security-role-ref> 
    <security-role-ref> 
     <role-name>guest</role-name> 
    </security-role-ref> 
    <security-role-ref> 
     <role-name>power-user</role-name> 
    </security-role-ref> 
    <security-role-ref> 
     <role-name>user</role-name> 
    </security-role-ref> 
</portlet> 
</portlet-app> 

「資源包」標籤的位置也的portlet.xml文件範圍內的事項。如果您檢查../portlet-app_2_0.xsd,您可以找到一個「序列」元素,它定義了portlet.xml文件中標記的順序。確保「資源包」標籤位於適當的位置。

我希望這可以幫助任何人定位一個portlet時在同一個問題上運行。

+0

感謝您編輯Reddy。 標記非常重要,沒有正確粘貼.Portlet應用程序中的每個portlet都會在內部有標記。 – evaldeslacasa

0

Maven的portlet有不同的文件夾的結構,所以資源包的用於行家門戶的位置是不同的。對於資源包,已經有一個名爲的資源文件夾。將您的Language_en.properties直接放入此文件夾中。

myportlet/src/main/java 
        /resources/Language_en.properties 
        /webapp 

然後在portlet中聲明您的資源包。XML像這樣:

<resource-bundle>Language</resource-bundle>

它會在你的語言包的資源文件夾自動搜索。

如果您創建子文件夾(包),請使用「。」作爲分隔符,例如<resource-bundle>resource.Language</resource-bundle>