Java springmvc-表单映射

Java springmvc-表单映射,java,spring,spring-mvc,Java,Spring,Spring Mvc,这里可能遗漏了一些非常明显的东西,但还是这样。我从Spring MVC开始。我有一个表单控制器来处理对/share/edit.html的入站请求。当我从浏览器点击此url时,出现以下错误: The requested resource (/inbox/share/share/edit) is not available. 这是我的applicationContext-mvc.xml: <bean id="publicUrlMapping" class="org.springframe

这里可能遗漏了一些非常明显的东西,但还是这样。我从Spring MVC开始。我有一个表单控制器来处理对/share/edit.html的入站请求。当我从浏览器点击此url时,出现以下错误:

 The requested resource (/inbox/share/share/edit) is not available.
这是我的applicationContext-mvc.xml:

 <bean id="publicUrlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping" >
        <property name="mappings" >
            <value>
                /share/edit.html=shareFormController
                /share/list.html=shareController
                /share/view.html=shareController
                /folders.json=foldersController
                /studies.json=studiesController
            </value>
        </property>
    </bean>


<bean id="internalPathMethodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.InternalPathMethodNameResolver" />

<bean id="shareFormController" class="com.lifeimage.lila.controller.ShareFormController" />
<bean id="shareController" class="com.lifeimage.lila.controller.ShareController" >
    <property name="methodNameResolver" ref="internalPathMethodNameResolver" />
</bean>

你检查日志输出了吗?SpringMVC的输出通常非常冗长


此外,您发布的URL(
/inbox/share/share/edit
)似乎与您正在配置的内容不匹配(
/share/edit.html
)。

您应该查看视图解析器。确保它按照您认为应该的方式解析控制器中的逻辑名称。看起来它正在解析的名称当前不存在

我想我已经解决了这个问题。有两个问题:

1) SimpleFormController的实现需要一个表单和成功视图;我在这里没有配置。由于这是AJAX客户端的服务器方法,我添加了一个Spring JSON视图,如下所示:

<?xml version="1.0" encoding="UTF-8"?>

http://www.springframework.org/schema/beans/spring-beans-2.5.xsd" default lazy init=“false”default autowire=“否” 默认依赖项检查=“无”>


311
失败
真的

可用于返回JSON的所有控制器


2) 我从SimpleRhHandlerMapping切换到ControllerClassNameHandlerMapping,并依赖Spring命名约定(controllerClassName/method.html),它解决了路由问题。可能不是一个长期的解决方案,但它让我完成了任务。

@jordan002当我看到您为完成任务而必须跳转的所有障碍时,我觉得有义务分享一个非常强大的Java MVC框架,它需要的配置要少得多。该框架称为归纳,请查看归纳vs。Spring MVC,

我想这就是问题所在。/inbox/share/edit.html是我试图让控制器侦听的URL。为什么路径名会重复?不确定。解决视图时,可能会出现从URL到控制器的映射问题。真的,检查日志。有趣的是,将URL映射从/share/edit.html更改为/ehtml使映射工作。但是这没有意义;我无法在这里创建任何其他表单。
<?xml version="1.0" encoding="UTF-8"?>
<bean name="jsonView" class="org.springframework.web.servlet.view.json.JsonView">
        <property name="jsonErrors">
            <list>
                    <ref bean="statusError" />
                    <ref bean="modelflagError" />
            </list>
    </property>
</bean>

<bean name="statusError" 
      class="org.springframework.web.servlet.view.json.error.HttpStatusError">
      <property name="errorCode"><value>311</value></property>
</bean>
<bean name="modelflagError" 
      class="org.springframework.web.servlet.view.json.error.ModelFlagError">
      <property name="name"><value>failure</value></property>
      <property name="value"><value>true</value></property>
</bean>