Tag: spring mvc

在DispatcherServlet中找不到带有URI 的HTTP请求的映射,名称为’appServlet’

我绝对是Java和Spring的新手,我想从例子中学习。 我正在使用开箱即用的配置/安装 Mac OSX Springsource Tool Suite作为IDE Spring 2.8.1.RELEASE 的vFabric-TC-服务器开发人员2.6.1.RELEASE 我试图基于“Spring Template Project”生成一个新项目。 然后我选择了“Spring MVC Project”。 生成示例项目。 之后,在没有修改任何内容的情况下,我尝试通过“Run As”执行de“home.jsp”页面。 Web服务器启动,最后我在控制台选项卡中收到错误。 在DispatcherServlet中找不到带有URI [/ myproject /]的HTTP请求的映射,名称为“appServlet” 这些网页中的其他输出: http://localhost:8080/myproject/WEB-INF/views/home.jsp http://localhost:8080/myproject 在这里,您可以看到有关我的项目结构的图像(为STS自动生成): 怎么了? 在这里,您可以看到web.xml文件的内容: contextConfigLocation /WEB-INF/spring/root-context.xml org.springframework.web.context.ContextLoaderListener appServlet org.springframework.web.servlet.DispatcherServlet contextConfigLocation /WEB-INF/spring/appServlet/servlet-context.xml 1 appServlet / root-context.xml文件具有此内容。 最后servlet-context.xml有这个内容。 有人有想法解决它吗?

无法自动assembly方法

我收到了这个错误 org.springframework.beans.factory.BeanCreationException: Could not autowire method: 这是我的spring的xml配置。 … 这是我的代码,我在Java类中自动assembly它 private InfoModel infoModel; @Autowired public void setInfoModel(InfoModel infoModel) { this.infoModel= infoModel; } 我错过了什么。 我怀疑我应该创建一个InfoModel Interface才能使其自动assembly? Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [com.model.InfoModel] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {} at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:920) at […]

Hibernate返回整数值

我是hibernate的新手。 我想传递2列值,并希望hibernate返回该表的主键。 String queryString = “select perId from Permission where document.docId=1 and user.id=2”; return getHibernateTemplate().find(queryString); 但是这个方法返回List。 我怎样才能返回int值。

Spring MVC如何转换@RequestParam值?

我是Spring框架的新手,作为一种症状,我希望尽可能简单地采用它的Web MVC部分,所以我使用注释函数来处理Spring。 在过去,我用过: int value = Integer.valueOf(request.getParameter(“numberValue”)) 从参数中提取值 – 显式转换getParameter()返回的String。 很有帮助,我注意到当我使用Spring的术语时: @RequestParameter(“numberValue”) int numVal 转换是自动处理的。 这很好,但对我来说是一个“黑匣子”。 我尝试在这里或Spring文档中查看问题,但所有这些信息都涉及对象或格式问题的自定义转换(如Converter)。 我想知道的是Spring默认如何处理@RequestParam的原始类型转换。

如何模拟私有内部类

我有一个spring应用程序,我想在像这样的控制器上创建一个单一的测试。 问题是Wrapper类是一个私有内部类,因此在测试中不了解Wrapper。 是否可以在不更改控制器类的情况下使用Mockito进行模拟。 我可以使用prepareData()来获取对象的实例,但我不知道是否可以使用它来模拟该对象。 谢谢 @Controller public class Controller { private class Wrapper { private Object1 field1; private Object2 field2; private Object1 method1(){ … } private Object2 method1(){ … } } @ModelAttribute(“data”) public Wrapper prepareData() { return new Wrapper (); } public String save(@ModelAttribute(“data”) Wrapper wrapper, BindingResult result, Model model){ … } } 所以在我的测试中我会有类似的东西 @Test […]

如何将弹簧控制器映射到扩展名为.jsp的URL?

我们正在将仅限jsp的应用程序迁移到Spring-MVC。 由于各种原因,我们无法更改当前页面的扩展名。 (对login.jsp的调用需要由将使用jsp文件作为视图的spring控制器处理)。 我们正在迭代地执行此操作,因此一些页面需要保留jsp文件(对welcome.jsp的调用将不会由控制器处理)。 为此,我将DispatcherDervlet和HandlerMapping映射到* .jsp,并以标准方式配置JstlView。 不幸的是,如果我浏览到//login.jsp,我会收到错误消息 <No mapping found for HTTP request with URI [//WEB-INF/jsp/login.jsp] in DispatcherServlet with name ‘spring’> 如果我将.jsp更改为DispatcherServlet和HandlerMapping中的任何其他扩展名,则一切正常。 web.xml中: spring org.springframework.web.servlet.DispatcherServlet 1 spring *.jsp 为spring-servlet.xml: 非常感谢。 更新 :我刚刚validation过,如果我将.jsp文件重命名为其他东西(.jst)并相应地更新viewResolver,那么一切正常。 显然,如果视图被解析为扩展名为.jsp的文件,则spring会尝试将视图转发到另一个控制器。

如何将PDF内容(从Spring MVC控制器方法提供)显示在新窗口中

我是Spring MVC的新手,但我对它的function印象深刻。 我正在使用3.1.0-RELEASE,我必须显示PDF以响应表单:表单提交。 这是我在控制器中编写的(小)代码: @RequestMapping(value = “new_product”, method = RequestMethod.POST, params = “print”) @ResponseBody public void saveAndShowPDF(ModelMap map, ShippingRequestInfo requestInfo, HttpServletRequest request, HttpServletResponse httpServletResponse) throws IOException { saveProductChanges(map, requestInfo, request, httpServletResponse); httpServletResponse.setContentType(“application/pdf”); byte[] pdfImage = productService.getPDFImage(requestInfo.getRequestId()); httpServletResponse.getOutputStream().write(pdfImage); } 此代码将PDF byte []发送回原始窗口。 如何让PDF显示在单独的窗口中,以便我仍然可以使用原始浏览器窗口显示其他内容? 最好的方法是使用客户端PDF视图程序(Adobe Reader,FoxIt等)显示PDF,但我可以将PDF显示在单独的浏览器窗口中。 编辑:我决定设置Content-Disposition,以便浏览器显示一个保存/打开框,用户可以打开Adobe(丢失主浏览器页面)。 httpServletResponse.setHeader(“Content-Disposition”,”attachment;filename=cool.pdf”); 感谢大家!

在SpringMVC的上下文中,如何使用提供同一类的不同JSON表示的Web服务?

我有一个数据类,如下所示: public class Person { private String name; private Long code; // corresponding getters and setters } 我想编写两个Web服务,它们提供两种不同的JSON表示forms。 例如,其中一个提供{“name”:”foo”}但另一个提供{“name”:”foo”, “code”:”123″} 。 作为一个更复杂的场景,假设Person有一个引用属性,例如address。 地址也有自己的属性,我希望我的两个Web服务都考虑这个属性,但每个属性都以自己的方式执行。 我的SpringMVC视图应该如何? 请注意,我是SpringMVC的新手。 请在答案旁边给我一个示例代码。 更新1:几天后,所有答案都促使我解决控制器中的问题或通过注释数据类。 但是我希望在视图中执行此操作,而不再使用java代码。 我可以在JSP文件或百万美元模板甚至.properties文件中执行此操作吗? 更新2:我找到了json-taglib 。 但不知何故,它被排除在新的升级之外。 有没有类似的解决方案?

使用MockMVC测试Spring MVC路由器

我正在尝试使用Spring测试来测试我的Spring MVC webapp。 它使用springmvc-router进行路由,这似乎打破了测试,当我使用@RequestMapping而不是我的routes.conf文件时,它可以正常工作。 我有一个名为valid.jsp的.jsp文件,当我从Jetty运行开发站点时,它显示正常。 控制器是: @Controller @EnableWebMvc public class AuthController { public String valid() { return “valid”; } } 我的GET /valid authController.valid文件映射了GET /valid authController.valid 。 现在,我的测试仪看起来像 @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {“/test-context.xml”, “/spring/spring-security.xml”, “file:src/main/webapp/WEB-INF/mvc-config.xml”}) @WebAppConfiguration @Import(RouteConfig.class) public class AuthControllerTest { private MockMvc mockMvc; @Autowired private WebApplicationContext webApplicationContext; @Autowired private AuthenticationManager authenticationManager; @Before public void init() { […]

如何使用Spring Security自动注销

我有一个spring web应用程序,我使用Spring安全性进行了用户身份validation。 一切都很好。 登录并注销完美! 现在,我想实现以便自动注销。 例如,如果用户打开窗口大约30分钟并且什么也不做(例如,会话已过期)系统应该自动注销。 我该如何实现呢? 它可能由客户端实现(我每1分钟发送一次请求并检查会话是否结束)。 但我不能自动从Spring那里做到这一点吗? 我有这个配置: 并在web.xml中 1 1分钟后,我看到会话被破坏了。 1分钟后杀死会话。 但是页面没有重定向到/ login?logout