在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 中],
通过liferay特定的方式,它使用liferay-portlet.xml条目。无法用spring来管理。
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/