gpt4 book ai didi

java - Spring MVC : best practice to navigate between two jsps

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:15:48 25 4
gpt4 key购买 nike

我正在使用 spring mvc + spring security 构建一个简单的 web 应用程序。我实现了登录/注销(spring mvc),但我还想提供一个可直接从 login.jsp 访问的注册 jsp。基本上我只需要一个从 login.jsp 到 regsiter.jsp 的简单链接,而不需要传递任何参数或其他任何东西。我只想问您实现这一目标的最佳做法是什么?

有没有什么方法可以直接在两个 jsp 之间导航,而无需将请求路由到 Controller ? (或者这不是真正的 spring mvc 方式?)老实说,我唯一的“问题”只是在注册 Controller 中有一个单独的方法,它什么都不做,只是将请求路由到注册 jsp。我的意思是:

注册 Controller

@Controller  
public class RegisterController {

@RequestMapping(value="/view_register.htm", method = RequestMethod.POST)
/** Navigates to the register page */
public String navigateToRegistration(ModelMap model) {
return "register";
}

@RequestMapping(value="/register.htm", method = RequestMethod.POST)
/** Handles request from the registration page and registers the user */
public String registerUser(ModelMap model) {

// hard stuff to register the user
return "welcome";
}

}

WEB-INF/pages/login.jsp

......
<tr>
<td>Don't have an account yet.</td>
<td> <a href="<c:url value='view_register.htm' />">Register here</a>
</td>
</tr>
......

WEB-INF/pages/register.jsp

......
<form name='registration' action="<c:url value='register.htm' />"
method='POST'>
......

WEB-INF/web.xml - 将每个请求路由到 spring mvc …… mvc-调度程序 /

WEB-INF/mvc-dispatcher-servlet

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">

<import resource="classpath:/applicationContext.xml" />

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>

</beans>

我的实现是否正确?这是mvc方式?我只是想知道我是否理解这一点并且没有做任何反模式的事情。真正让我困惑的是注册 Controller 中的这个额外的小方法,它什么都不做,只是从登录导航到注册。这种方法至少有任何命名约定吗?您是否会推荐一个 ForwardController,它可以充当管理器/调度程序并且只管理此类导航请求?

最佳答案

您的结构看起来是正确的:一个异常(exception)是 /view_register.htm 应该是 GET,而不是 POST。 Spring MVC 使用前端 Controller 模式,因此每个请求都通过一个 Controller 。当一个请求唯一要做的就是返回一个 View 时,您可以使用 ParameterizableViewController 配置您的映射,而不是编写一个 Controller ,但是当有多个相关请求时,我倾向于编写一个方法在 Controller 内。随着您的应用的发展,您可能会发现您将添加一些 session 设置,这只会将所有注册请求保持在同一类中。

不要忘记配置安全性以允许匿名访问您的注册请求。

关于java - Spring MVC : best practice to navigate between two jsps,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20858483/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com