Tag: spring mvc

如何在表单,validation和ddl中重用字段长度?

我正在开发一个包含大量输入表单的Spring应用程序。 我想在UI表单,validation和JPA注释中重用字段长度。 有没有一种优雅的方法来解决这个问题。 我现在的解决方案是,使用常量来声明长度: public class Person { public static final int FIRSTNAME_LENGTH = 25; @Column(length=FIRSTNAME_LENGTH) private String firstName; … } 然后在Validator和Jsp中重用常量 … <form:input path="firstName" maxlength="”/> … 这很啰嗦。 这个问题还有更优雅的解决方案吗?

将restful ajax请求映射到spring

我有这段代码: @RequestMapping(value = “/test.json”, method = RequestMethod.GET) @ResponseStatus(HttpStatus.OK) public @ResponseBody Object[] generateFile(@RequestParam String tipo) { Object[] variaveis = Variavel.getListVariavelByTipo(tipo); return variaveis; } 据我所知,它应该接受test.json?tipo = H的请求并返回Variavel []的JSON表示,但是当我提出这样的请求时,我得到: HTTP状态406 – 类型状态报告 信息 description此请求标识的资源只能根据请求“accept”标题生成具有不可接受特征的响应() 通过使用以下函数,我可以得到预期的json: @RequestMapping(value = “/teste.json”) public void testeJson(Model model, @RequestParam String tipo) { model.addAttribute(“data”, Variavel.getListVariavelByTipo(“H”)); } 我做错了什么?

期望在模型属性@RequestBody或@RequestPart参数之后立即声明Errors / BindingResult参数

我通过剖析示例应用程序然后在这里和那里添加代码来测试我在解剖过程中开发的理论来自学Spring。 我测试一些我添加到Spring应用程序的代码时收到以下错误消息: An Errors/BindingResult argument is expected to be declared immediately after the model attribute, the @RequestBody or the @RequestPart arguments to which they apply 错误消息引用的方法是: @RequestMapping(value = “/catowners”, method = RequestMethod.GET) public String findOwnersOfPetType(Integer typeID, BindingResult result, Map model) { // find owners of a specific type of pet typeID = 1;//this is just […]

如何为所有控制器配置默认的@RestController URI前缀?

我知道您可以在application.properties设置server.contextPath来更改根上下文。 另外,我可以在Spring Boot的应用程序配置中添加一个额外的上下文,如下例(在Groovy中),为根上下文的URL映射添加“/ api”: @Bean ServletRegistrationBean dispatcherServlet() { ServletRegistrationBean reg = new ServletRegistrationBean(new DispatcherServlet(), “/”) reg.name = “dispatcherServlet” reg.addInitParameter(“contextConfigLocation”, “”) reg.addUrlMappings(“/api/*”) reg.loadOnStartup = 2 reg } } 我正在尝试为Web服务调用提供一个单独的基本URI“/ api”,我可以利用它来保证安全性等。但是使用上述方法将意味着我可以通过以下方式访问我的任何URI,无论是否使用Web服务“/”或“/ api”,并没有提供具体的隔离。 是否有人知道使用配置为所有@RestController设置基本路径的更好方法,而不必使用/ api /正式为每个控制器添加前缀? 如果我被迫手动为每个控制器的URI添加前缀,则可能会错误地省略它并绕过我特定于Web服务的安全措施。 这是Stack Overflow中对同一类型问题的引用,但从未完全回答过: Spring Boot:为RestControllers配置url前缀

java中的java.lang.ClassNotFoundException:org.springframework.web.context.ContextLoaderListener

我正在做一个简单的Spring MVC应用程序(不使用maven),它将在浏览器上打印hello world。 它是eclipse中的动态项目,因此我将所有必需的jar文件放在构建路径以及WEB-INF/lib文件夹中 我尝试了两种解决方案,但都没有用。 解决方案我发现: 清理tomcat工作目录 把spring-mvc / spring-web.jar jar文件放在lib中 这是我的web.xml Spring MVC Application mvc-dispatcher org.springframework.web.servlet.DispatcherServlet 1 mvc-dispatcher / contextConfigLocation /WEB-INF/mvc-dispatcher-servlet.xml org.springframework.web.context.ContextLoaderListener 并且在配置contextLoaderListener时没有拼写错误,那么问题是什么,是否还有其他解决方案 Jan 20, 2014 8:16:39 PM org.apache.catalina.core.StandardService startInternal INFO: Starting service Catalina Jan 20, 2014 8:16:39 PM org.apache.catalina.core.StandardEngine startInternal INFO: Starting Servlet Engine: Apache Tomcat/7.0.11 Jan 20, 2014 8:16:40 PM org.apache.catalina.core.StandardContext listenerStart […]

我可以在spring控制器类中使用路径变量吗?

我可以在弹簧控制器类中使用路径变量吗? 我知道我们可以在控制器的方法中使用路径变量。 我们可以用同样的方式将它用于全class吗? 例如: @Controller @RequestMapping(value = “{version}/test”) class TestController { } 我们可以这样使用吗? 如果是,我们如何阅读{version}变量? 实际上我需要这种方法,基于我会回应的版本。 如果不能采用上述方法,请您建议我设计一下来解决这个问题吗?

Spring Data不处理Pageable action参数创建

我有一个简单的控制器动作: public class CategoriesController { @RequestMapping(value = { “/”, “” }) public String list( Model model, @PageableDefault(size = CategoriesController.PAGE_LIMIT) Pageable pager ) { // load page data Page page = this.categoryService.findAll(pager); /* action logic here */ } } 这是我的pom.xml片段: org.springframework spring-beans 3.2.4.RELEASE org.springframework spring-web 3.2.4.RELEASE org.springframework spring-webmvc 3.2.4.RELEASE org.springframework.data spring-data-commons 1.6.4.RELEASE org.springframework.data spring-data-jpa 1.5.0.RELEASE 将此添加到我的applicationContext.xml […]

自定义HTTP消息转换器未使用,415 Unsupproted媒体类型

我正在创建一个测试应用程序,以便在传递给控制器​​之前实现从XML String到Employee对象的转换。 我不想使用JAXB转换器,因为我的目的是测试自定义HTTP消息转换器,我将在我的实际用例中使用它涉及使用SAX解析器和一些复杂规则进行XML解析。 以下是执行的关键步骤: 创建Employee.java类 :域对象 创建EmployeeManagementController.java类 :用于管理员工的Spring MVC控制器 创建EmployeeConverter.java :用于将XML字符串转换为Employee对象的自定义转换器。 创建employee-servlet.xml :Spring配置文件 创建web.xml :部署描述符 Employee.java @Component @XmlRootElement(name=”employee”) @XmlAccessorType(XmlAccessType.FIELD) public class Employee{ @XmlElement(name=”name”) String name; @XmlElement(name=”designation”) String designation; @XmlElement(name=”skill”) String skill; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getDesignation() { return designation; } public […]

修复Spring MVC应用程序中的Null EntityManger?

在下面的代码中,我注入了EnitityManager,它总是显示为null ; public class GenericController extends AbstractController { @PersistenceContext(unitName = “GenericPU”) private EntityManager em; protected ModelAndView handleRequestInternal( HttpServletRequest request, HttpServletResponse response) throws Exception { //(em == null) is always trigged if (em == null) throw new NullPointerException(“em is null”); Collection Generics = em.createNamedQuery(“Generic.findAll”).getResultList(); ModelAndView mav = new ModelAndView(“Generic”); mav.addObject(Generics); return mav; } } 这是bean定义,在dispatcher-servlet.xml中定义。 应该在persistence-context.xml文件中定义基于tx:annotation的注入EnitityManager。 […]

如何将带有斜杠的URL重定向到没有它的相应的URL?

Spring MVC(3.0)将带有和不带尾部斜杠的URL视为相同的URL。 例如: http://www.example.org/data/something = http://www.example.org/data/something/ 我需要使用尾部斜杠重定向URL http://www.example.org/data/something/ 到没有它的URL: http://www.example.org/data/something 我需要在应用程序内部执行此操作(因此不要通过Apache重写规则等)。 一种方法是: @ResponseStatus(value=HttpStatus.MOVED_PERMANENTLY) @RequestMapping(value = “/data/something/”) public String dataSomethingRedirect(…) { return “redirect:/data/something”; } 但这通常有两个问题: 控制器太多了 参数问题:喜欢错误的编码 题 有没有办法拦截所有的URL,如果他们有一个尾部斜杠,将它们重定向到没有斜线的相对URL?