2

おそらくここで完全に明白な何かが欠けていますが、ここに行きます。私はSpringMVCから始めています。/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>

と私のフォームコントローラー:

public class ShareFormController extends SimpleFormController {

    public ShareFormController() {
        setCommandClass( Share.class );
    }

    @Override
    protected ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response, Object command, BindException errors)
            throws Exception {

        //controller impl...

    }



}
4

4 に答える 4

1

ビューリゾルバーを確認する必要があります。必要に応じて、コントローラーの論理名が解決されていることを確認してください。解決しようとしている名前は現在存在しないようです

于 2009-05-12T16:14:25.760 に答える
1

私はこの問題を解決したと思います。2つの問題がありました:

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 =" no "default-dependency-check =" none ">

<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>

これは、JSONを返すすべてのコントローラーに使用できます。

2)SimpleURLHandlerMappingからControllerClassNameHandlerMappingに切り替え、ルーティングの問題を修正したSpringの命名規則(controllerClassName / method.html)に依存しました。長期的な解決策ではないかもしれませんが、私はその仕事をやり遂げました。

于 2009-05-15T13:16:18.727 に答える
0

ログ出力を確認しましたか?Spring MVCは、一般的に、出力内容がかなり冗長です。

また、投稿したURL(/inbox/share/share/edit)が設定内容()と一致していないようです/share/edit.html

于 2009-05-12T16:09:28.200 に答える
-1

@ jordan002タスクを実行するためにジャンプしなければならなかったすべてのフープを見ると、はるかに少ない構成で済む非常に強力なJavaMVCフレームワークを共有する義務があると感じています。フレームワークはInductionと呼ばれます。InductionとSpringMVCの記事をご覧ください。http://www.inductionframework.org/induction-vs-spring-mvc.html

于 2009-08-03T17:26:44.163 に答える