gpt4 book ai didi

java - SprinMVC 控制流程

转载 作者:行者123 更新时间:2023-12-01 10:15:55 24 4
gpt4 key购买 nike

我想在 Spring MVC 中重写 servlet 控制流,这是我的Servlet 中的 doGet

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String action = request.getParameter("action");

String path = request.getParameter("path");

if (path != null && path.equals("register")) {
RequestDispatcher view = request.getRequestDispatcher("/WEB-INF/views/system/registeruser.jsp");
view.forward(request, response);
} else if (path != null && path.equals("usermang")) {
RequestDispatcher view = request.getRequestDispatcher("/WEB-INF/views/system/manageuser.jsp");
view.forward(request, response);
}

else {
PrintWriter out = response.getWriter();
out.print("Served at: " + request.getContextPath());
RequestDispatcher view = request.getRequestDispatcher("/WEB-INF/views/system/index.jsp");
view.forward(request, response);
}
}

我想使用模型和 View 将上面的 doGET 转换为 Spring RequestMapping示例

@RequestMapping(value ="/grcon" ,method = RequestMethod.GET)
public ModelAndView getGrcon()

ModelAndView modegeron = new ModelAndView("index");

if (path != null && path.equals("register")) {
view = request.getRequestDispatcher("/WEB-INF/views/system/registeruser.jsp");

return modegeron;

}
}

最佳答案

你正在变得复杂,使用 Spring 的力量来为你处理复杂性。

对于初学者来说,将 InternalResourceViewResolver 添加到您的配置中,这将处理 View 到资源的转换。

<bean id="viewResolver" class="InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/system/" />
<property name="suffix" value=".jsp" />
</bean>

接下来添加params元素到您的@RequestMapping以获得映射的进一步规范。

@RequestMapping(value ="/grcon", method = RequestMethod.GET, params="path=register")
public String register() {
return "registeruser";
}

@RequestMapping(value ="/grcon", method = RequestMethod.GET, params="path= usermang")
public String manageUser() {
return "manageuser";
}

@RequestMapping(value ="/grcon", method = RequestMethod.GET)
public String index() {
return "index";
}

或者使用具有@RequestParam的方法并返回适当的 View 。进行 String 比较时的小提示将静态值放在第一位,这样可以节省 null 检查。

@RequestMapping(value ="/grcon", method = RequestMethod.GET)
public String register(@RequestParam(value="path", required=false) String path) {
if ("register".equals(path) ) {
return "registeruser";
} else if ("usermang".equals(path)) {
return "manageuser";
}
return "index";
}

但是,通常您还需要对模型做一些准备,因此第一个可能更适用。

关于java - SprinMVC 控制流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35890862/

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