相关疑难解决方法(0)

Spring MVC @PathVariable被截断了

我有一个控制器,提供对信息的RESTful访问:

@RequestMapping(method = RequestMethod.GET, value = Routes.BLAH_GET + "/{blahName}")
public ModelAndView getBlah(@PathVariable String blahName, HttpServletRequest request,
                            HttpServletResponse response) {
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,如果我使用带有特殊字符的路径变量命中服务器,它将被截断.例如: http:// localhost:8080/blah-server/blah/get/blah2010.08.19-02:25:47

参数blahName将是blah2010.08

但是,对request.getRequestURI()的调用包含传入的所有信息.

知道如何防止Spring截断@PathVariable吗?

java rest spring get spring-mvc

135
推荐指数
7
解决办法
7万
查看次数

两个请求具有相同的映射

我需要按ID和用户名获取用户信息.我可以有2个这样的请求吗?

 @GetMapping("/user/{id}")
public User getUser(@PathVariable Long id) {
    return userRepository.getOne(id);
}

@GetMapping("/user/{username}")
public User getUser(@PathVariable String username) {
    return userRepository.findUserByUsername(username);
}


public interface UserRepository extends JpaRepository<User,Long>{

@Query("SELECT u FROM u WHERE username= :#{username}")
User findUserByUsername(@Param("username") String username);
}
Run Code Online (Sandbox Code Playgroud)

错误: findUserByUsername(java.lang.String) but parameter 'Optional[username]' not found in annotated query 'SELECT u FROM u WHERE username= :#{username}'!

java spring-mvc

5
推荐指数
2
解决办法
72
查看次数

为SPA前端配置Spring Boot

我有整个前端部分在资源中铺设的应用程序.我想将事情分开.并且具有用于UI的单独服务器,例如由gulp提供.

因此,我假设我的服务器应该返回index.html客户端呈现的所有请求.

例如:我有'user /:id'路由,它通过角度路由进行管理,不需要任何服务器.如何配置以便服务器不会重新加载或重定向到任何地方?

我的安全配置正在跟随(不知道它是否负责此类事情):

public class Application extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.antMatcher("/**").authorizeRequests().antMatchers("/", "/login**", "/webjars/**", "/app/**", "/app.js")
                .permitAll().anyRequest().authenticated().and().exceptionHandling()
                .authenticationEntryPoint(new LoginUrlAuthenticationEntryPoint("/")).and().logout()
                .logoutSuccessUrl("/").permitAll().and().csrf()
                .csrfTokenRepository(csrfTokenRepository()).and()
                .addFilterAfter(csrfHeaderFilter(), CsrfFilter.class)
                .addFilterBefore(ssoFilter(), BasicAuthenticationFilter.class);
    } 
Run Code Online (Sandbox Code Playgroud)

java spring angularjs single-page-application gulp

3
推荐指数
2
解决办法
5353
查看次数