gpt4 book ai didi

spring-mvc - 在 Liferay 选项卡的选项卡标题中使用空格

转载 作者:行者123 更新时间:2023-12-04 04:57:49 25 4
gpt4 key购买 nike

我正在使用 Spring MVC 来处理 portlet 和 liferay 选项卡。我在将空格放入标签标题时遇到问题。假设我想在 JSP 中定义这样的东西:

<liferay-ui:tabs
names="Sample Tab 1, Sample Tab 2"
refresh="false"
value="${myControllerValue}"
>
<liferay-ui:section>
<jsp:include page='/jsp/myPage1.jsp' flush="true"/>
</liferay-ui:section>
<liferay-ui:section>
<jsp:include page='/jsp/myPage2.jsp' flush="true"/>
</liferay-ui:section>
</liferay-ui:tabs>

这根本不起作用(尽管,这正是文档中的示例),问题只是名称中的空格(如果我使用名称=“tab1,tab2”,它可以正常工作,但这不是我想要展示的在标签标题中)

此外,我需要控制我从 Controller 显示的选项卡。像这样的东西:
 if(whatever){
renderrequest.setAttribute("myControllerValue", "Sample Tab 1");
}

这会导致另一个问题,因为我需要以多种语言显示选项卡名称,所以我需要在语言环境中传递我想要的选项卡以匹配 jsp id。最好的办法是将标题与标签 ID 分开并使用 tabValues 参数,但不知道该怎么做......

我读了一些关于重新定义 Languages-ext.properties 的内容,但我只是导入了选项卡,
<%@taglib prefix="liferay-ui"   uri="http://liferay.com/tld/ui" %>

所以我没有这个属性文件,也不知道如何解决它。

我真的很感激在这个问题上的任何帮助。

提前致谢!

编辑:

尝试应用下面发布的答案时,我遇到了下一个错误:
07:26:12,297 ERROR [PortletLocalServiceImpl:542] com.liferay.portal.kernel.xml.DocumentException: Error on line 20 of document  : cvc-complex-type.2.4.a: Invalid content was found starting with element 'resource-bundle'. One of '{"http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd":portlet-info, "http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd":portlet-preferences, "http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd":security-role-ref, "http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd":supported-processing-event, "http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd":supported-publishing-event, "http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd":supported-public-render-parameter, "http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd":container-runtime-option}' is expected. 

这是我的 portlet.xml 文件:
<portlet-app
version="2.0"
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">
<portlet>
<portlet-name>MyAPP</portlet-name>
<display-name>MyAPP</display-name>
<portlet-class>org.springframework.web.portlet.DispatcherPortlet</portlet-class>
<init-param>
<name>contextConfigLocation</name>
<value>/WEB-INF/portlet/MyAPP-portlet.xml</value>
</init-param>
<expiration-cache>0</expiration-cache>
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>VIEW</portlet-mode>
</supports>
<supported-locale>gl_ES</supported-locale>
<supported-locale>es_ES</supported-locale>
<resource-bundle>messages</resource-bundle>

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

<portlet-info>
<title>MyAPP</title>
<short-title>MyAPP</short-title>
<keywords>MyAPP</keywords>
</portlet-info>
</portlet>
</portlet-app>

最佳答案

您可以使用 Language.properties在选项卡中包含您想要的确切标题名称。

<liferay-ui:tabs>你可以有:

<liferay-ui:tabs
names="sample-tab-1, sample-tab-2"
refresh="false"
value="${myControllerValue}"
>

这些只是 Language.properties 中的键文件为:
sample-tab-1=Sample Tab 1
sample-tab-2=Sample Tab 2

您可以定义 Language.properties portlet.xml 中的文件如:
<portlet>
...
...
<resource-bundle>content/Language</resource-bundle>
...
</portlet>

并且这个文件和其他语言文件将驻留在 content 内的源包中。文件夹,是这样的:
docroot
|
|--> src
|
|--> content
|--> Language.properties
|--> Language_en.properties
|--> Language_ja.properties
|--> Language_de.properties
...

所以在你的 Controller 中你会使用:
if(whatever){
renderrequest.setAttribute("myControllerValue", "sample-tab-1");
}

更多关于 Liferay Localization .

关于spring-mvc - 在 Liferay 选项卡的选项卡标题中使用空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16547463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com