小编Sel*_*ber的帖子

如何(或者你应该)避免在jsf中使用长方法/类

我主要使用基于JSF的项目中的遗留代码,并且在支持bean中有很多很长的类和方法.

这一直在困扰着我,但是当我寻找可以做的事情的时候,我所能提出的大部分时间都是将一个长方法划分为n个小方法.这给你一个很长的课程,有时甚至更难阅读.

那么你怎么做才能让你的支持bean简洁明了?或者你为一个页面保留一个大的支持bean?有没有最好的做法?

我假设这与jsf没有直接关系,而是与你用控制器"支持"视图的任何模型有关.所以一般建议也会有所帮助.

java model-view-controller jsf backing-beans

5
推荐指数
1
解决办法
2425
查看次数

使用类多级@RequestMapping网址时发现的模糊映射

如果我在课堂上使用多级网址,我会收到以下异常@RequestMapping("/api/v0.1"):

java.lang.IllegalStateException: Ambiguous mapping found. Cannot map 'userController'
bean method getUsers()|to {[/api/v0.1]}: There is already 'userController' bean
method getUser(java.lang.String) mapped.
Run Code Online (Sandbox Code Playgroud)

这就像方法级别映射完全没有考虑在内一样.
但是如果我把@RequestMapping("/api")ie删除/v0.1部分就可以了.

以下是针对最小情况的配置:

@Controller
@RequestMapping("/api/v0.1")
public class UserController {   

    @RequestMapping(value = "/users")
    @ResponseBody
    public List<User> getUsers() {
        return null;
    }

    @RequestMapping(value = "/users/{username}")
    @ResponseBody
    public User getUser(@PathVariable String username) {
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

web.xml中

<servlet-mapping>
    <servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

servlet的context.xml中:

<!-- Configures the @Controller programming model -->
<mvc:annotation-driven />

<!-- Forwards …
Run Code Online (Sandbox Code Playgroud)

spring-mvc

5
推荐指数
1
解决办法
5771
查看次数