Pregunta

vista personalizada:

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

controlador:

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

Por alguna razón esto no funciona ... El único punto de vista de resolución que tengo es la siguiente:

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

No hace este código de trabajo, ya que está tratando de crear un poco de vista JSP basa en ... No estoy seguro, el camino de mi formulario de presentación; y hay obviamente hay vista JSP para ello, estoy esperando JSON para ser devuelto en realidad, pero por alguna razón esto no está funcionando, es simplemente tratando de remitir a algunos JSP, así que supongo que necesito especificar cómo manejar esto en mi XML ... pero he visto alrededor de 1000 maneras diferentes que la gente vuelve JSON, y todos ellos son muy confuso para mí, sólo estoy buscando la manera más simple, por lo que puede tomar desde hay

Edit: agregó una respuesta que es un comienzo bueno, pero le permite escribir ".json" después de cualquier URL y lo va a hacer algunas cosas realmente malas, si como el controlador no estoy esperando que, por lo que necesito de alguna manera tiene este punto de vista de resolución sólo se aplican a las direcciones URL seguras

¿Fue útil?

Solución

Ok, finalmente, después de probar un millón de combinaciones

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

y entonces este

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

No entiendo realmente cómo puedo devolver un objeto a partir de aquí ...

Pero esta realidad, aunque es simple, y muy útil, no es aceptable porque entonces fui a alguna otra página de mi sitio web, y sólo hay que poner un arbitraria ".json" después de la URL y se inició una excepción que da la forma como los usuarios demasiada información respecto a mi solicitud, así que básicamente tiene que averiguar una forma que sólo tienen esta capacidad en ciertos controladores que están asegurados ...

¿Ideas?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top