1

カスタムビュー:

public class MyView extends AbstractView {
   .... awesome stuff ...
}

コントローラ:

@RequestMapping(value="mylocation")
public ModelAndView dosomething() {
...
   modelAndView.setView( new MyView() );
   return modelAndView;
}

何らかの理由でこれは機能しません...私が持っている唯一のビューリゾルバーは次のとおりです。

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
          p:prefix="/WEB-INF/jsp/"
          p:suffix=".jsp" >
        <property name="exposedContextBeanNames">
            <list>
                <value>spEnv</value>
            </list>
        </property>
    </bean>

このコードは、に基づいてJSPビューを作成しようとしているため、機能しません...フォーム送信のパスがわかりません。明らかにJSPビューがないので、JSONが実際に返されることを期待していますが、何らかの理由でこれが機能せず、JSPに転送しようとしているだけなので、指定する必要があると思いますXMLでこれを処理する方法...しかし、人々がJSONを返す約1000の異なる方法を見てきましたが、それらはすべて私にとって非常に混乱しています。私は最も簡単な方法を探しているので、そこの

編集:私は良いスタートである答えを追加しました、しかしそれはあなたがどんなURLの後に「.json」をタイプすることを可能にします、そしてそれは私がそれを期待していないコントローラーとしていくつかの本当に悪いことをするでしょう、それで私はどういうわけか持っている必要がありますこのビューリゾルバーは、保護されたURLにのみ適用されます

4

1 に答える 1

1

さて、ついに百万の組み合わせを試した後

@RequestMapping(value = "/test/data")
    public TestFormData dostuff() {
        TestFormData data = new TestFormData();
        data.setName("myname");
        return data;
    }

そしてこれ

<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver" p:order="1">
        <property name="mediaTypes">
            <map>
                <entry key="json" value="application/json"/>
            </map>
        </property>
        <property name="defaultViews">
            <list>
                <bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />
            </list>
        </property>
    </bean>

ここからオブジェクトを返す方法がよくわかりません...

しかし、これは実際には単純で非常に便利ですが、Webサイトの他のページに移動し、URLの後に任意の「.json」を付けるだけで、ユーザーに多くの情報を提供する例外がスローされたため、受け入れられません。私のアプリケーションについては、基本的に、セキュリティで保護されている特定のコントローラーでのみこの機能を使用できるようにする方法を理解する必要があります...

何か案は?

于 2010-06-25T21:00:27.237 に答える