如何在spring中隐藏路径变量

时间:2017-12-08 06:01:37

标签: spring spring-mvc spring-boot

我在春季启动时面临一个小问题,我的网址有路径变量,我想仅隐藏路径变量,但我必须使用变量控制器内部

现在我的网址就像http://localhost:8080/abcProject/gauge/add/6eeaa220-bcd3-4bd1-b499-f4ae53028e4d-1511529503794

我想要一个像http://localhost:8080/abcProject/gauge/add/这样的网址,因为在某些情况下,保留部分可能会影响项目。当我搜索时,我得到了一个答案来隐藏路径变量,以便在 WebMvcConfigurerAdapter 下添加以下代码。

@Autowired
private RequestMappingHandlerAdapter requestMappingHandlerAdapter;

@PostConstruct
public void init() {
    requestMappingHandlerAdapter.setIgnoreDefaultModelOnRedirect(true);
}

但它不起作用。

我的控制器

@RequestMapping("/gauge/add/{gaugeUrl}")
public ModelAndView addCategory(@PathVariable("gaugeUrl") String gaugeUrl) {    
    //working with gaugeURL    
    //other stuffs
}

编辑1:我没有从jsp页面传递变量。我从数据库传递它。

编辑2 :我的请求为<a href="${pageContext.request.contextPath}/gauge/add/${listOng‌​oingCustomerUuid.uui‌​d}" target="_blank">Click here</a>

3 个答案:

答案 0 :(得分:0)

@RequestMapping("/gauge/add")
public ModelAndView addCategory(@requestParam String gaugeUrl) {    
    //working with gaugeURL    
    //other stuffs
}

@GetMapping("/gauge/add")
public String addCategory(@RequestBody String gaugeUrl) {    
    //working with gaugeURL    
    //other stuffs
}

答案 1 :(得分:0)

POST请求示例:

 @RequestMapping("/gauge/add", method = RequestMethod.POST)
 public ModelAndView addCategory(@RequestBody String gaugeUrl) {    
   //working with gaugeURL    
   //other stuffs
 }

答案 2 :(得分:0)

您可以使用ajax调用来执行相同操作,而不是使用href吗?我不知道你想要达到的确切结果,但这会隐藏你的参数。