java - Liferay配置 Action 类-Spring依赖注入(inject)

标签 java spring-mvc liferay portlet spring-portlet-mvc

在Liferay中,Configuration Action类在liferay-portlet.xml中定义 问题是,如果我使用任何 spring 依赖注入(inject),它就不起作用。

<portlet>
    <portlet-name>search</portlet-name>
    <icon>/icon.png</icon>
    <configuration-action-class>com.mypack.MyConfigurationAction</configuration-action-class>
    <header-portlet-css>/css/main.css</header-portlet-css>
    <footer-portlet-javascript>/js/main.js</footer-portlet-javascript>
    <css-class-wrapper>search-portlet</css-class-wrapper>
    <add-default-resource>true</add-default-resource>
</portlet>

Action类的实现

public class MyConfigurationAction extends DefaultConfigurationAction {

    private @Value("${test.property1}") String property1;
    private @Value("${test.property2}") String property2;
}

如何在不使用 ClassPathXmlApplicationContext 的情况下将这些属性注入(inject)到此 Action 类中并在类中硬编码 spring.xml 文件

最佳答案

在 portlet 开发中,有两种方法可以保存首选项[在 liferay 中],

  1. 通过liferay特定的方式,它使用liferay-portlet.xml条目。无法用spring来管理。

  2. JSR-286[门户不可知],portlet 编辑模式。

在使用Spring MVC框架开发portlet时,建议使用portlet EDIT模式。

在Spring MVC portlet框架中,可以通过portlet模式来映射portlet请求。

例如:创建如下 Controller 类,它将映射到编辑模式请求。

@Controller
@RequestMapping("EDIT")
public class PreferencesController

有两种方法,一种带有@RenderMapping注解的方法,负责 View ,另一种带有@ActionMapping/@RequestMapping注解的方法,负责存储首选项。

希望这会有所帮助。

关于java - Liferay配置 Action 类-Spring依赖注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21397793/

相关文章:

java - 按钮打开 Activity 特定

java - 在 Java 8 中使用流式链接对集合进行排序

java - spring form jsp绑定(bind)引用bean

java - 显示来自 finite Stream 的所有最长单词

java - 在 spring-mvc 上处理密码确认

java - Spring登录表单示例

configuration - 在编辑模式下创建 Liferay portlet

java - Liferay kaleo 工作流程通知,向特定用户发送电子邮件而不是角色

java - 解密liferay密码

java - 开始时更新菜单