相关疑难解决方法(0)

如何使用Spring MVC将会话属性作为方法参数(参数)传递

简而言之,我想要的是:

public String action(@SessionAttribute User user) {..}
Run Code Online (Sandbox Code Playgroud)

代替

public String action(HttpSession session) {
     User user = session.getAttribute("user");
}
Run Code Online (Sandbox Code Playgroud)

主要是为了:

  • 可读性
  • 单元测试

java spring spring-mvc

16
推荐指数
1
解决办法
1万
查看次数

升级到spring-3.1似乎打破了我的CustomWebArgumentResolver

我正在尝试将spring MVC应用程序从3.0.6升级到3.1.2,并且一些以前工作的控制器似乎不再起作用了.我已经阅读了春季文档,但我对什么与什么兼容感到困惑.

我们有一个CustomWebArgumentResolver,它查找名为"asOf"的任何请求参数,并将其值转换为日期.我们称之为"AsOfDateConverter",缺乏想象力.升级到spring-3.1.2时,我利用了新的命名空间功能并将其添加到我的applicationContext:

<mvc:annotation-driven conversion-service="conversionService">
    <mvc:argument-resolvers>
        <bean id="customWebArgumentResolver" class="my.converters.CustomWebArgumentResolver">
        </bean>            
    </mvc:argument-resolvers>
</mvc:annotation-driven>
Run Code Online (Sandbox Code Playgroud)

CustomWebArgumentResolver非常简单:

public class CustomWebArgumentResolver implements WebArgumentResolver {
    private AsOfDateConverter asOfDateConverter;

    @Override
    public Object resolveArgument(MethodParameter methodParameter, NativeWebRequest webRequest) throws Exception {
        if (isAsOfDateParameter(methodParameter)) {
            return asOfDateConverter.convert(webRequest.getParameter("asOf"));
        }

        return UNRESOLVED;
    }
Run Code Online (Sandbox Code Playgroud)

然后一个示例控制器可能看起来像这样:

@Controller
@Secured({BaseController.ROLE_LOGGED_IN})
@org.springframework.transaction.annotation.Transactional
public class DashboardController extends BaseController {
    public static final String URL = "/dashboard";

    @RequestMapping(value=URL, method=RequestMethod.GET)
    public ModelAndView get(@RequestParam(required=false) String requestedMeterType, @AsOf Date asOf) {
        debug(log, "Rendering dashboard asOf %s", asOf);
etc etc
Run Code Online (Sandbox Code Playgroud)

"asOf"参数是空的,我确信我错过了一些明显的东西.如果有人在最​​新的MVC 3.1中深入研究,可能会指出我正确的方向,我将不胜感激.

谢谢!汤姆 …

spring spring-mvc

3
推荐指数
1
解决办法
2760
查看次数

标签 统计

spring ×2

spring-mvc ×2

java ×1