请教一个sringmvc的问题,@RequestMapping可以从属性文件直接取值吗??????

姚君 发布于 2013/08/23 16:19
阅读 2K+
收藏 0
@RequestMapping(value = "index-{siteId}${urlSuffix}")   这个是什么意思啊??
加载中
0
逝水fox
逝水fox

Spring3.2开始 @RequestMapping支持 ${...}

以下是原文,来自官方v3.2文档17.3.2

Patterns with Placeholders
Patterns in @RequestMapping annotations support ${...} placeholders against local properties and/or system properties and environment variables. This may be useful in cases where the path a controller is mapped to may need to be customized through configuration. For more information on placeholders see the Javadoc for PropertyPlaceholderConfigurer.

姚君
姚君
要的就是这个,谢谢
逝水fox
逝水fox
回复 @姚君 : Bean后处理器org.springframework.beans.factory.config.PlaceholderConfigurerSupport或者<context:property-placeholder/>
姚君
姚君
那它怎么知道要找哪个属性文件啊????
0
安西都护府首席程序员
安西都护府首席程序员
不可以从属性文件直接读取。
姚君
姚君
我下的一个框架,他就是直接读取的,我就不明白了@RequestMapping(value = "${frontPath}")
0
震秦
震秦

可以. 本质上它是一个字符串. 你可以从文件加载到一个Properties对象中.

@RequestMapping(value = prop.getString("url"))


姚君
姚君
我下的一个框架,他就是直接读取的,我就不明白了@RequestMapping(value = "${frontPath}") 直接就这样用了
逝水fox
逝水fox
这个是不行的,语法要求注解的属性值必须是常量
0
逝水fox
逝水fox

大括号扩起来的是占位参数,在这个处理方法的参数里面可以有用

@PathVariable(value = "siteId")

注解的参数,Spring会给你截取然后转换成合适的类型作为方法的参数值,例如:

@RequestMapping(value = "view_file/{fileName}", method = RequestMethod.GET)
	public ModelAndView viewFile(@RequestParam(value = "path", required = true) String path,
			@PathVariable(value = "fileName") String fileName, HttpServletResponse response)


逝水fox
逝水fox
回复 @姚君 : 找到原因 我回在下面
逝水fox
逝水fox
回复 @姚君 : 哦 我看下他代码
姚君
姚君
那就奇怪了,就是那个jeesite直接就读取了,
逝水fox
逝水fox
回复 @姚君 : Debug进去看了下,确认这个默认是不识别和替换${...}的
逝水fox
逝水fox
回复 @姚君 : 按理做配置文件替换的那个是Bean后处理器,对于容器里面所有Bean的属性都有效果的,应该也包括这个控制器。但是我测了下没成功
下一页
0
震秦
震秦

引用来自“震秦”的答案

可以. 本质上它是一个字符串. 你可以从文件加载到一个Properties对象中.

@RequestMapping(value = prop.getString("url"))


治学不严谨了, Sorry. 刚才亲自试了一下, 真不行. 编译不通过.

返回顶部
顶部