我有两个Spring MVC操作,在此示例中,在提交时从表单中获取一个参数:
public ModelAndView login(HttpServletResponse response, HttpServletRequest request,
@RequestParam String requestedURL )
我想知道requestURL属性是否可以引用一个实际包含传入属性名称的声明变量输入名称=“requestURL”...
class Core {
static String requestedURL = "requestedURL";
}
伪代码:
public ModelAndView login(..., @RequestParam String @ReadFrom(Core.RequestedURL) )
请注意@ReadFrom
这是避免冗余。现在它被称为requestedURL,但将来有人可能想要更改输入参数名称,在我看来,这不应该是应用程序中的硬编码字符串。
和
<input name="<%= Core.requestedURL %>" value="<%= requestedURL %>" />
并在提交时在方法中读取。但是,在action方法的传入参数中,属性名称是否必须硬编码?
谢谢!
答案 0 :(得分: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)