2014-01-17 47 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>