如何将此URL映射到Spring控制器方法?
我使用的是Spring3.1.1.RELEASE。我正在将URL映射到控制器方法。我想将URL“/my context path/organizations/add”映射到下面的控制器方法。在我的控制器中,我有如何将此URL映射到Spring控制器方法?,spring,controller,httpwebrequest,mapping,Spring,Controller,Httpwebrequest,Mapping,我使用的是Spring3.1.1.RELEASE。我正在将URL映射到控制器方法。我想将URL“/my context path/organizations/add”映射到下面的控制器方法。在我的控制器中,我有 @Controller @RequestMapping("/organizations") public class OrganizationController { … @RequestMapping(value = "/add", method = RequestM
@Controller
@RequestMapping("/organizations")
public class OrganizationController
{
…
@RequestMapping(value = "/add", method = RequestMethod.GET)
public ModelAndView doGetadd()
{
… do some stuff …
return new ModelAndView("organizations/add");
} // doGetadd
在我的web.xml中,我有
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<display-name>SB Admin</display-name>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/organizations/*</url-pattern>
</servlet-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/dispatcher-servlet.xml</param-value>
</context-param>
...
<!-- Enable annotation driven controllers, validation etc... -->
<mvc:annotation-driven />
<context:component-scan base-package="org.myco.subco" />
<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>
某人行政
调度员
org.springframework.web.servlet.DispatcherServlet
2.
调度员
/组织机构/*
org.springframework.web.context.ContextLoaderListener
上下文配置位置
/WEB-INF/dispatcher-servlet.xml
在dispathcer-servlet.xml中
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<display-name>SB Admin</display-name>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/organizations/*</url-pattern>
</servlet-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/dispatcher-servlet.xml</param-value>
</context-param>
...
<!-- Enable annotation driven controllers, validation etc... -->
<mvc:annotation-driven />
<context:component-scan base-package="org.myco.subco" />
<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>
。。。
/WEB-INF/views/
.jsp
但对所需上下文路径的请求会导致“在DispatcherServlet中找不到URI为[/myproject-1.0-SNAPSHOT/organizations/add]的HTTP请求的映射,名称为“dispatcher”错误(使用JBoss 7)。我如何正确地映射这件事?请注意,我的控制器中有多个方法,我希望在“/organizations”空间中创建不同的URL。根据模型和视图构造函数参数,该参数是视图文件的名称
因此该文件可以是addView.jsp
以及您(据我所知)实际将其映射到/Application Name/organizations/organizations/add的事实,原因是:
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/organizations/</url-pattern>
</servlet-mapping>
我建议将requestmapping从控制器更改为
@Controller
@RequestMapping("/")
public class OrganizationController
/organizations/
基本上定义了可访问站点的“虚拟路径”。
您在控制器上执行的所有映射将附加到它,使其成为/organizations/whateverpagecomesher.jsp
并确保视图文件存在 根据定义,ModelAndView构造函数参数是视图文件的名称
因此该文件可以是addView.jsp
以及您(据我所知)实际将其映射到/Application Name/organizations/organizations/add的事实,原因是:
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/organizations/</url-pattern>
</servlet-mapping>
我建议将requestmapping从控制器更改为
@Controller
@RequestMapping("/")
public class OrganizationController
/organizations/
基本上定义了可访问站点的“虚拟路径”。
您在控制器上执行的所有映射将附加到它,使其成为/organizations/whateverpagecomesher.jsp
并确保视图文件存在 试试这个
将dispatcher servlet映射更改为:
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
对于ContractsController,映射将是
@Controller
@RequestMapping("/contracts")
public class OrganizationController
试试这个
将dispatcher servlet映射更改为:
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
对于ContractsController,映射将是
@Controller
@RequestMapping("/contracts")
public class OrganizationController
我想确定我对你的理解是正确的。对于所有控制器,您建议我将“@RequestMapping(“/”)放在“@Controller”注释之前?我还有一个ContractsController,我想将其URL映射到“/contracts/add”、“/contracts/update”等等。您的建议对多个控制器有效吗?@Dave作为旁注,请在邮件中注明地址,这样我会收到您的回复:-)这与Usha给出的答案正好相反。我选择将您的上下文设置为/organizations/whateverpagecomesher.derp,这样,通过将
@RequestMapping
分配给“/”您实际上将访问/organizations/。。在控制器中没有它。这意味着对于第二个问题,您将访问/organizations/contracts/add.extension。在servlet映射中看到url模式的值了吗?我想确保我正确地理解了您。对于所有控制器,您建议我将“@RequestMapping(“/”)放在“@Controller”注释之前?我还有一个ContractsController,我想将其URL映射到“/contracts/add”、“/contracts/update”等等。您的建议对多个控制器有效吗?@Dave作为旁注,请在邮件中注明地址,这样我会收到您的回复:-)这与Usha给出的答案正好相反。我选择将您的上下文设置为/organizations/whateverpagecomesher.derp,这样,通过将@RequestMapping
分配给“/”您实际上将访问/organizations/。。在控制器中没有它。这意味着对于第二个问题,您将访问/organizations/contracts/add.extension。在servlet映射中看到url模式的值了吗?请理解后再试。你提到的mycontext路径是什么…你的一些话让我感到困惑…无论如何,一个答案可以帮助你很多,因为删除url中的*,原因是如果你放*它还包括选择分派器的include意思是循环..理解后再试试..你提到的mycontext路径是什么…你的一些话让我很困惑…无论如何,一个答案可以帮你很多,因为删除url中的*,原因是如果你把*放进去,它还包括选择调度程序的包含,这意味着循环..神圣的上帝,成功了!很简单,但我一直在寻找。我今天投票给你当总统。很高兴它成功了!如果你还没有投票给总统:)神圣的上帝,你成功了!很简单,但我一直在寻找。我今天投票给你当总统。很高兴它成功了!如果你还没有投票给总统:)