我正在处理Spring MVC框架。我以前使用过PHP Symfony Framework,并且有类似的原则。但是,我正在努力用我的控制器页面创建一个模型来处理表单提交。当用户登录我的系统时,他们是开发人员或项目经理。我有一个名为User类的类,另一个名为Role的类 - 后者确定用户是否具有Developer或Project Manager的角色。但是我有逻辑,如果你能告诉我如何在我的方法中处理表单提交。
我导入了User类。 1)此方法显示表单“获取”方法
@RequestMapping(value="/user-login", method=RequestMethod.GET)
public ModelAndView loginForm(){
return new ModelAndView("login-form");
}
2)这是我在检索数据“POST”方法时尝试使用的方法
@Autowired(value="/user-login", method=RequestMethod.POST)
public ModelAndView loginForm() {
if(user.getRole()=="User"){
System.out.println("This is the Developer View");
} else if(user.getRole()=="Admin"){
System.out.println("This is the Admin view");
}
}
答案 0 :(得分:1)
就像我在评论中提到的那样,在比较字符串的java中,你使用的是.equals()
,而不是==
,你也可能想要调用toUpperCase()
或toLowerCase()
,因为字符串比较区分大小写。
在post
方法中,如果您尝试将用户输入绑定到java变量,请查看@RequestParam
我不建议您处理登录的方式,使用弹簧安全更多是标准方式。 http://www.mkyong.com/spring-security/spring-security-custom-login-form-annotation-example/
答案 1 :(得分:0)
这取决于您使用的表单类型。如果它是弹簧形式,您将不得不修改您的方法和逻辑。弹簧形式使用空对象,并使用通过表单提交的值填充它。然后,您可以从处理请求的方法访问该对象。
有关Spring表单标签的更多信息,请参阅以下教程: http://www.baeldung.com/spring-mvc-form-tutorial
如果您使用的是常规HTML表单,则可以将参数传递给处理表单请求的方法。
public String handleForm(@Requestparam("name") String name){
//handle request
return "nextpage"