2

我正在开发一个简单的弹簧应用程序。我有几个 jsp,我想更改 jsp 的名称和 URL。我改变了控制器:

@RequestMapping(value = "/simpleForm.html", method = RequestMethod.GET)
public void simpleForm(Model model) {
       model.addAttribute(new User());
}

@RequestMapping(value = "/newName.html", method = RequestMethod.GET)
public void simpleForm(Model model) {
       model.addAttribute(new User());
}

simpleForm.jspto的名称newName.jsp user是我在表格中使用的一个类simpleform.jsp

我无法让它工作。我收到 404 未找到 simpleform.jsp。我很困。

编辑:我的视图解析器标签:

<bean id="viewResolver"
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">

        <property name="prefix">
            <value>WEB-INF/views/</value>
        </property>
        <property name="suffix">
            <value>.jsp</value>
        </property>
    </bean>

我的网址模式是这样的:

<servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/forms/*</url-pattern>
</servlet-mapping>

我发现所有链接都得到相同的错误()资源不可用。甚至那些我没有改名的。

我也试过直接从newName.jsp. 还是同样的错误!

4

6 回答 6

0

ViewResolver 的前缀中缺少正斜杠。这应该可以修复您的 404。试一试。

<property name="prefix">
<value>/WEB-INF/jsp/</value>
</property>
于 2012-07-17T15:23:30.780 回答
0

404 错误是一种 HTTP 状态代码,表示您试图在网站上访问的页面在其服务器上无法找到。
如我所见,您的后缀是.jsp。所以试试这个(如果 WebContent 中有任何 newName.jsp)

@RequestMapping(value = "/newName", method = RequestMethod.GET)
public void simpleForm(Model model) {
   model.addAttribute(new User());
}
于 2012-07-17T08:34:35.033 回答
0

改变:

@RequestMapping(value = "/newName.html", method = RequestMethod.GET)

至:

@RequestMapping(value = "/newName.jsp", method = RequestMethod.GET)
于 2012-07-17T08:21:05.750 回答
0

它应该工作

如果你试试这个网址

http://localhost:<port>/AppNAme/forms/newName.html

你的控制器是

@RequestMapping(value = "/newName.html", method = RequestMethod.GET)
public ModelAndView simpleForm(Model model) {
       model.addAttribute(new User());

ModelAndView mv = new ModelAndView("jspViewName");
return mv;
}
于 2012-07-17T09:37:16.433 回答
0

仔细检查你在课堂上仍然有@Controller注释。我已经看到 404s 被意外删除了。

于 2012-07-17T08:29:55.320 回答
0

尝试将其更改为

   @RequestMapping(value = "/newName.html", method = RequestMethod.GET)
    public String simpleForm(Model model) {
           model.addAttribute(new User());
           return "newName";  // returning the desired view
    }

并确保您已viewResolver相应定义,例如

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

根据您的应用程序结构更改前缀。它将采用视图(控制器返回的字符串)并将添加前缀和后缀。所以解决的视图将是/WEB-INF/jsp/newName.jsp.

于 2012-07-17T08:25:18.517 回答