我没有足够的理由通过注释来configurationspring beans,而不是纯xml bean,现在我正面临着后果。 我使用configurationREST通道 <mvc:annotation-driven /> 现在我只需MappingJacksonHttpMessageConverterconfiguration为MappingJacksonHttpMessageConverter输出具有非空值的字段。 我已经尝试了以下内容: <bean id="jsonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"> <property name="prefixJson" value="false" /> <property name="supportedMediaTypes" value="application/json" /> <property name="objectMapper"> <bean class="org.codehaus.jackson.map.ObjectMapper"> <property name="serializationInclusion" value="NON_NULL"/> </bean> </property> </bean> bean被创build,但另一个转换器实例被创build并在通道中使用。 所以我已经尝试了在这个Stackoverflow问题中描述的@Configuration和@Bean的方式,但仍然json序列化使用它自己的configuration。 最后我试图通过注入映射器 @Autowired private MappingJacksonHttpMessageConverter jacksonConverter; 但是我已经结束了NoSuchBeanDefinitionException 。 所以现在我没有select,所以我在这里要求任何想法。 如何控制和configuration框架使用的映射器?
我只是在学习Spring 3的注释fu的绳索,我偶然发现了newb的噩梦exception。 将不胜感激任何帮助。 这里是jsp代码的forms: <form:form method="POST" action="login.htm" modelAttribute="login"> …. <form:input path="email" size="20" /> …. 控制器的代码(在这一点上,我只是简单的testing水域,所以不能直接指向任何页面,只是返回一个空string): @Controller @SessionAttributes public class LoginController { @RequestMapping(value = "/login", method = RequestMethod.POST) public String login( @ModelAttribute("login") Login login, BindingResult result) { System.out.println( " email entered "+ login.getEmail()+ "\n" ); return "test"; } “login”是一个具有适当的setter和getter的表单bean。 我认为我的调度程序servlet中的这一点代码应该照顾注释扫描: <context:component-scan base-package="com.testAnnFu.controller" /> 这是我尝试加载我的登陆jsp页面时抛出的可耻的exception。 SEVERE: Neither […]
春季安全可以在Spring控制器方法上使用@PreAuthorize吗?
新用户提交“新帐户”表单后,我想手动将该用户login,以便他们不必在后续页面上login。 通过spring安全拦截器的正常forms的login页面工作得很好。 在新帐户表单控制器中,我将创build一个UsernamePasswordAuthenticationToken并手动将其设置在SecurityContext中: SecurityContextHolder.getContext().setAuthentication(authentication); 在同一页上,我稍后检查用户是否login: SecurityContextHolder.getContext().getAuthentication().getAuthorities(); 这返回了我之前在身份validation中设置的权限。 一切都很好。 但是,当我加载的下一页上调用相同的代码时,身份validation令牌只是UserAnonymous。 我不清楚为什么它没有保持我以前的请求设置的身份validation。 有什么想法吗? 会话ID的设置是否正确? 有什么可能覆盖我的身份validation? 也许我只需要另一个步骤来保存身份validation? 还是有什么我需要做的是在整个会话中声明身份validation,而不是一个单一的请求? 只是寻找一些想法,可以帮助我看看这里发生了什么。
我正在寻找在MVC中绑定和转换数据的最简单最简单的方法。 如果可能的话,不做任何XMLconfiguration。 到目前为止,我一直在使用PropertyEditor : public class CategoryEditor extends PropertyEditorSupport { // Converts a String to a Category (when submitting form) @Override public void setAsText(String text) { Category c = new Category(text); this.setValue(c); } // Converts a Category to a String (when displaying form) @Override public String getAsText() { Category c = (Category) this.getValue(); return c.getName(); […]
我从服务器得到下面的JSONstring作为响应 [{"city":"AMBALA","cStatus":"Y"},{"city":"ASANKHURD","cStatus":"Y"},{"city":"ASSANDH","cStatus":"Y"}] 这是我的JQuery代码 $('#search').click(function() { alert("submit handler has fired"); $.ajax({ type: 'POST', url: 'cityResults.htm', data: $('#cityDetails').serialize(), success: function(data){ alert(data); }, error: function(jqXHR, textStatus, errorThrown){ alert('error: ' + textStatus + ': ' + errorThrown); } }); return false;//suppress natural form submission }); 该警报正确显示JSONstring。 现在我想把这个响应映射到我的表 说 我怎样才能做到这一点 ??
假设我有Person类,我创build了一个Person实例列表,并将这个列表添加到Model 。 List<Person> persons = new ArrayList<Person>(); model.addAttribute("persons",persons); return "savePersons"; 在View页面我有一个表单: <form:form method="post" action="savePerson" modelAttribute="persons"> <c:forEach var="person" items="${persons}"> <form:input path="person.FName" name="FName" id="FName" value="" /> <form:input path="person.LName" name="LName" id="LName" value="" /> </c:forEach> <button type="submit"></button> </form:form> 当我点击提交button时,我想将Person List绑定到控制器上的POST方法。 @RequestMapping(value = { "savePerson" }, method = RequestMethod.POST) public String savePerson(Model model, HttpServletRequest request, HttpSession session,@ModelAttribute("persons")List<Person> persons) { System.out.println(persons.length); […]
下面显示了我的maven spring项目目录结构。 我正在使用Spring-4基于注释的configuration。 我configuration下面的资源。 我尝试了许多Stackoverflow问题和其他网站的build议 Spring 4加载静态资源 http://imwill.com/spring-mvc-4-add-static-resources-by-annotation/#.U5GZlXKs9i4 但是jsp文件无法加载资源,所有的静态内容请求都返回404错误。 我在jsp上试过这些东西, <link href="resources/css/bootstrap.css" rel="stylesheet" media="screen"> <link href="/resources/css/bootstrap.css" rel="stylesheet" media="screen"> <link href="css/bootstrap.css" rel="stylesheet" media="screen"> 编辑:我正在使用servlet 2.5,因为截至目前我无法将我的项目从JBoss 5升级到更高版本。 JBoss5不支持servlet 3,这是否重要? @Configuration @ComponentScan("com.mgage.mvoice") public class MyAppWebConfig extends WebMvcConfigurerAdapter { public void addResourceHandlers(ResourceHandlerRegistry registry) { // I tried these many combinations separately. ResourceHandlerRegistration resourceRegistration = registry .addResourceHandler("resources/**"); resourceRegistration.addResourceLocations("/resources/**"); registry.addResourceHandler("/css/**").addResourceLocations("/css/**"); registry.addResourceHandler("/img/**").addResourceLocations("/img/**"); […]
假设我有一个页面列出了一个表上的对象,我需要把一个窗体过滤表。 该filter以Ajax GETforms发送到如下URL: http : //foo.com/system/controller/action?page=1&prop1= x& prop2=y&prop3=z 而不是像我的控制器上有很多的参数: @RequestMapping(value = "/action") public @ResponseBody List<MyObject> myAction( @RequestParam(value = "page", required = false) int page, @RequestParam(value = "prop1", required = false) String prop1, @RequestParam(value = "prop2", required = false) String prop2, @RequestParam(value = "prop3", required = false) String prop3) { … } 假设我有MyObject: public class MyObject […]
我听说JSF正在实现基于组件的MVC,而Spring MVC正在实现基于请求的MVC。 我想知道这两种types之间的确切技术差异是什么。