【问题标题】:How to solve warning when using liferay-ui:search-container in JSP?在 JSP 中使用 liferay-ui:search-container 时如何解决警告?
【发布时间】:2014-09-30 15:50:52
【问题描述】:

我正在使用Liferay MVC famework 在Liferay 6.1 中开发一个portlet。当我使用

<liferay-ui:search-container />  

Eclipse 总是向我显示以下警告消息

SearchContainer 是一种原始类型。对泛型类型的引用 SearhcContainer&lt;R&gt; 应该参数化

JSP 代码片段:

<%
    List<User> users = UserLocalServiceUtil.search(...);
%>

<liferay-ui:search-container>

    <liferay-ui:search-container-results
        results="<%= users %>"
        total="<%= users.size() %>"
    />

    <liferay-ui:search-container-row 
            className="com.liferay.portal.model.User"
            keyProperty="userId"
            modelVar="userVar">

        <liferay-ui:search-container-column-text
                name="name"
                value="<%= userVar.getFullName() %>" />

    </liferay-ui:search-container-row>

    <liferay-ui:search-iterator />

</liferay-ui:search-container>

我搜索了很多例子。我已将它们导入我的工作区。当使用search-container 标签时,它们还会向我显示相同的警告消息。

一个例子是这个portlet:Event listing portlet
/docroot/html/eventlisting/view.jsp Eclipse 中向我显示了相同的警告。

我在 stackoverflow 中都没有找到任何解决方案搜索,也没有在谷歌中找到。我在 jsp 中发现了很多对警告的引用,但是在使用某些标记时出现警告时没有。

如果可能的话,我不想禁用 JSP 验证或使用一些 @SuppressWarnings

我真的很想知道当我使用这个 taglib 时是否有正确的方法来避免在 JSP 中出现这个警告。

我正在与
- Liferay 6.1.1 CE GA2
- Eclipse Luna 4.4.0 版

提前致谢

【问题讨论】:

    标签: java eclipse jsp liferay liferay-6


    【解决方案1】:

    Class SearchContainer 是一个泛型类 (http://cdn.docs.liferay.com/portal/6.1/javadocs/com/liferay/portal/kernel/dao/search/SearchContainer.html),当您尝试实例化而不传递类型参数时,所有泛型类都会产生该警告。

    更多详情:

    但是 SearchContainer 是通过 tablib 实例化的,所以我认为 eclipse “看穿”了 taglib 并产生警告。问题可能出在生成的代码中,我真的猜想这个问题没有实用的解决方案(挂钩/扩展 taglib 代码?真的吗?)

    对不起这个(未)回答!

    【讨论】:

    • 感谢您的回答!我猜想有一种我不知道的方法可以在通过 taglib 实例化时传递类型参数。在接受你的回答之前,我会花一些时间。可能有人想出了另一个答案或解决方法。
    【解决方案2】:

    我认为你应该在 liferay-ui-search-container 标签中使用你的总属性。而不是在搜索容器结果中使用。

        List<User> users = UserLocalServiceUtil.search(...);
    %>
    
    <liferay-ui:search-container total="<%= users.size() %>">
    
        <liferay-ui:search-container-results
            results="<%= users %>"
        />
    
        <liferay-ui:search-container-row 
                className="com.liferay.portal.model.User"
                keyProperty="userId"
                modelVar="userVar">
    
            <liferay-ui:search-container-column-text
                    name="name"
                    value="<%= userVar.getFullName() %>" />
    
        </liferay-ui:search-container-row>
    
        <liferay-ui:search-iterator />
     
    
    </liferay-ui:search-container>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-23
      • 2013-04-29
      • 2017-08-23
      • 2011-01-16
      • 2012-06-14
      • 2017-11-22
      相关资源
      最近更新 更多