Spring mvc SpringMVC:如何在渲染视图之前更改模型属性?谢谢
我想在渲染视图之前添加或删除一些属性,我认为拦截器可以帮助我,但它不起作用,任何人都可以帮助我,非常感谢 mvc上下文xml:Spring mvc SpringMVC:如何在渲染视图之前更改模型属性?谢谢,spring-mvc,Spring Mvc,我想在渲染视图之前添加或删除一些属性,我认为拦截器可以帮助我,但它不起作用,任何人都可以帮助我,非常感谢 mvc上下文xml: <mvc:annotation-driven></mvc:annotation-driven> <mvc:interceptors> <bean class="org.tt.interceptor.FieldsInterceptor"></bean> </mvc:interceptors>
<mvc:annotation-driven></mvc:annotation-driven>
<mvc:interceptors>
<bean class="org.tt.interceptor.FieldsInterceptor"></bean>
</mvc:interceptors>
<bean id="jsonWSResponseView" class="org.tt.view.JsonWSResponseView"></bean>
<bean id="xmlWSResponseView" class="org.tt.view.XmlWSResponseView"></bean>
<!-- ViewResolver -->
<bean id="viewResolver" class="org.tt.ws.WSViewResolver">
<property name="views">
<map>
<entry key="json" value-ref="jsonWSResponseView"></entry>
<entry key="xml" value-ref="xmlWSResponseView"></entry>
</map>
</property>
</bean>
字段接收器:
public class FieldsInterceptor extends HandlerInterceptorAdapter {
public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
try {
modelAndView.addObject("AA", "add attribute");
}catch (Exception e){
e.printStackTrace();
}
}
}
观点:
public class JsonWSResponseView implements View {
public String getContentType() {
return "application/Json";
}
public void render(Map<String, ?> map, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
OutputStreamWriter os = new OutputStreamWriter(httpServletResponse.getOutputStream());
os.write(JSON.toJSONString(map.get("modelAndView")));
os.close();
}
}
公共类JsonWSResponseView实现视图{
公共字符串getContentType(){
返回“application/Json”;
}
公共void呈现(映射映射、HttpServletRequest HttpServletRequest、HttpServletResponse HttpServletResponse)引发异常{
OutputStreamWriter os=新的OutputStreamWriter(httpServletResponse.getOutputStream());
write(JSON.toJSONString(map.get(“modelAndView”));
os.close();
}
}
请求和答复:
可能存在的副本
public class JsonWSResponseView implements View {
public String getContentType() {
return "application/Json";
}
public void render(Map<String, ?> map, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
OutputStreamWriter os = new OutputStreamWriter(httpServletResponse.getOutputStream());
os.write(JSON.toJSONString(map.get("modelAndView")));
os.close();
}
}