0

我有两个 Spring MVC 操作,在此示例中,它们在提交时从表单中获取一个参数:

public ModelAndView login(HttpServletResponse response, HttpServletRequest request,  
@RequestParam String requestedURL ) 

我想知道属性 requestURL 是否可以引用一个声明的变量,该变量实际上包含传入属性输入 name="requestURL" 的名称 ...

class Core {
     static String requestedURL = "requestedURL"; 
}

伪代码:

public ModelAndView login(..., @RequestParam String @ReadFrom(Core.RequestedURL) ) 

注意@ReadFrom

这是为了避免冗余。现在它被称为 requestURL 但将来有人可能想要更改输入参数名称,在我看来,这不应该是应用程序中的硬编码字符串。

<input name="<%= Core.requestedURL %>" value="<%= requestedURL %>" />

并在提交时在方法中读取。但是属性名称是否必须在动作方法的传入参数中进行硬编码?

谢谢!

4

1 回答 1

1

是的,它必须作为 @RequestParam 注释的一部分进行硬编码 - 硬编码或引用static final变量。

另一种方法是将模型/映射作为方法中的附加参数并从中获取属性:

public ModelAndView login(HttpServletResponse response, HttpServletRequest request,  
Model model ){
    String requestedURL = model.asMap().get(Core.requestedURL);
} 

更新 您可以通过这种方式引用静态最终变量:假设:

public abstract class Core {
     public static final String requestedURL = "requestedURL"; 
}

public ModelAndView login(..., @RequestParam(Core.requestedURL) String requestedURL) 
于 2012-08-03T12:47:24.690 回答