Questions tagged «spring-mvc»

基于模型-视图-控制器(MVC)模式构建Java Web应用程序的框架。它促进了与基础视图技术的灵活解耦的代码。

9
Spring Boot配置和使用两个数据源
如何配置和使用两个数据源? 例如,这是我对第一个数据源的需求: application.properties #first db spring.datasource.url = [url] spring.datasource.username = [username] spring.datasource.password = [password] spring.datasource.driverClassName = oracle.jdbc.OracleDriver #second db ... 应用类别 @SpringBootApplication public class SampleApplication { public static void main(String[] args) { SpringApplication.run(SampleApplication.class, args); } } 如何修改application.properties以添加另一个数据源?如何自动布线以供其他存储库使用?

23
如何在Spring MVC中处理静态内容?
我正在使用Spring MVC 3开发一个webapp,并DispatcherServlet像这样(web.xml)捕获所有对“ /”的请求: <servlet> <servlet-name>app</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>app</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> 现在,它可以像宣传的那样工作,但是如何处理静态内容?以前,在使用RESTful URL之前,我会捕获所有* .html并将其发送到DispatcherServlet,但是现在这是一个不同的球类游戏。 我有一个/ static /文件夹,其中包括/ styles /,/ js /,/ images /等,我想从中排除/ static / * DispatcherServlet。 现在,当执行此操作时,我可以使用静态资源: <servlet-mapping> <servlet-name>app</servlet-name> <url-pattern>/app/</url-pattern> </servlet-mapping> 但是我希望它有一个不错的URL(我使用Spring MVC 3的要点),而不是登录页面是www.domain.com/app/ 我也不需要耦合到tomcat或任何其他servlet容器的解决方案,而且由于(相对)低流量,我不需要前端的Web服务器(如apache httpd)。 有一个干净的解决方案吗?
200 spring-mvc 

8
在Spring Boot的application.properties中使用env变量
我们正在开发一个Spring Boot Web应用程序,并且正在使用的数据库是MySql; 我们拥有的设置是我们首先在本地对其进行测试(意味着我们需要在PC上安装MySql); 然后我们推向Bitbucket ; Jenkins自动检测对Bitbucket的新推送并在其上进行构建(要使Jenkins mvn构建通过,我们还需要在运行Jenkins的虚拟机上安装MySql)。 如果Jenkins构建通过,我们会将代码推送到OpenShift上的应用程序(使用Jenkins上的Openshift部署插件)。 我们的问题,因为你可能已经想通了就是: 在application.properties我们不能对MySql信息进行硬编码。由于我们的项目将在3个不同的地方(local,Jenkins和OpenShift)运行,因此我们需要使数据源字段动态化application.properties(我们知道这样做的方式不同,但目前正在研究此解决方案)。 spring.datasource.url = spring.datasource.username = spring.datasource.password = 我们想到的解决方案是在本地和Jenkins vm中创建系统环境变量(以OpenShift命名它们的方式命名),并分别为其分配正确的值: export OPENSHIFT_MYSQL_DB_HOST="jdbc:mysql://localhost" export OPENSHIFT_MYSQL_DB_PORT="3306" export OPENSHIFT_MYSQL_DB_USERNAME="root" export OPENSHIFT_MYSQL_DB_PASSWORD="123asd" 我们已经做到了,并且有效。我们还检查了Map<String, String> env = System.getenv();是否可以将环境变量设置为java变量,如下所示: String password = env.get("OPENSHIFT_MYSQL_DB_PASSWORD"); String userName = env.get("OPENSHIFT_MYSQL_DB_USERNAME"); String sqlURL = env.get("OPENSHIFT_MYSQL_DB_HOST"); String sqlPort = env.get("OPENSHIFT_MYSQL_DB_PORT"); 现在剩下的唯一事情就是我们需要在我们的程序中使用这些java变量application.properties,这就是我们遇到的麻烦。 在哪个文件夹,以及如何做,我们需要分配password,userName,sqlURL,和sqlPort变量application.properties能够看到他们,我们如何将它们包含在application.properties? …




7
Spring MVC:复杂对象为GET @RequestParam
假设我有一个列出表中对象的页面,并且我需要放置一个表格来过滤表。过滤器以Ajax GET的形式发送到如下网址: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为: …
190 java  spring-mvc 

3
Spring MVC中的@RequestParam处理可选参数
Spring控制器是否可以处理两种请求? 1) http://localhost:8080/submit/id/ID123432?logout=true 2) http://localhost:8080/submit/id/ID123432?name=sam&password=543432 如果我定义单个控制器: @RequestMapping (value = "/submit/id/{id}", method = RequestMethod.GET, produces="text/xml") public String showLoginWindow(@PathVariable("id") String id, @RequestParam(value = "logout", required = false) String logout, @RequestParam("name") String username, @RequestParam("password") String password, @ModelAttribute("submitModel") SubmitModel model, BindingResult errors) throws LoginException {...} 带有“注销”的HTTP请求将不被接受。 如果我定义两个控制器来分别处理每个请求,Spring会抱怨“已存在'Controller'bean方法...映射”异常。
185 java  spring  spring-mvc 

10
Spring MVC-如何在Spring控制器中获取地图中的所有请求参数?
范例网址: ../search/?attr1=value1&attr2=value2&attr4=value4 我不知道attr1,att2和attr4的名称。 我希望能够做类似的事情(或类似的,无关紧要,只要我可以访问Map的请求参数名-> value: @RequestMapping(value = "/search/{parameters}", method = RequestMethod.GET) public void search(HttpServletRequest request, @PathVariable Map<String,String> allRequestParams, ModelMap model) throws Exception {//TODO: implement} 如何使用Spring MVC做到这一点?
183 java  spring  spring-mvc 

24
Spring Boot不提供静态内容
我无法让Spring-boot项目提供静态内容。 我已经放在一个命名的文件夹static下src/main/resources。在其中,我有一个名为的文件夹images。当我打包应用程序并运行它时,它找不到我放在该文件夹中的图像。 我试图把静态文件中public,resources并META-INF/resources但没有任何工程。 如果我jar -tvf app.jar我可以看到文件在正确文件夹的jar中: /static/images/head.png例如,但是调用:http://localhost:8080/images/head.png,我得到的只是一个404 有什么想法为什么spring-boot没有找到这个?(我正在使用1.1.4 BTW)

16
将上下文路径添加到Spring Boot应用程序
我试图以编程方式设置一个Spring Boot应用程序上下文根。上下文根的原因是我们希望从中访问该应用程序,localhost:port/{app_name}并将所有控制器路径附加到该应用程序。 这是Web应用程序的应用程序配置文件。 @Configuration public class ApplicationConfiguration { Logger logger = LoggerFactory.getLogger(ApplicationConfiguration.class); @Value("${mainstay.web.port:12378}") private String port; @Value("${mainstay.web.context:/mainstay}") private String context; private Set<ErrorPage> pageHandlers; @PostConstruct private void init(){ pageHandlers = new HashSet<ErrorPage>(); pageHandlers.add(new ErrorPage(HttpStatus.NOT_FOUND,"/notfound.html")); pageHandlers.add(new ErrorPage(HttpStatus.FORBIDDEN,"/forbidden.html")); } @Bean public EmbeddedServletContainerFactory servletContainer(){ TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory(); logger.info("Setting custom configuration for Mainstay:"); …

8
如何获取活动用户的UserDetails
在我的控制器中,当我需要活动(登录)用户时,我正在执行以下操作以获取UserDetails实现: User activeUser = (User)SecurityContextHolder.getContext().getAuthentication().getPrincipal(); log.debug(activeUser.getSomeCustomField()); 它工作正常,但我认为Spring在这种情况下可以使生活更轻松。有没有办法将UserDetails自动接线连接到控制器或方法中? 例如,类似: public ModelAndView someRequestHandler(Principal principal) { ... } 但是UsernamePasswordAuthenticationToken我得到了,UserDetails而不是得到了? 我正在寻找一个优雅的解决方案。有任何想法吗?

4
当对Spring RESTful应用程序使用ResponseEntity <T>和@RestController时
我正在使用Spring Framework 4.0.7,MVC和Rest 我可以和以下人一起安心工作: @Controller ResponseEntity&lt;T&gt; 例如: @Controller @RequestMapping("/person") @Profile("responseentity") public class PersonRestResponseEntityController { 用的方法(只是创建) @RequestMapping(value="/", method=RequestMethod.POST) public ResponseEntity&lt;Void&gt; createPerson(@RequestBody Person person, UriComponentsBuilder ucb){ logger.info("PersonRestResponseEntityController - createPerson"); if(person==null) logger.error("person is null!!!"); else logger.info("{}", person.toString()); personMapRepository.savePerson(person); HttpHeaders headers = new HttpHeaders(); headers.add("1", "uno"); //http://localhost:8080/spring-utility/person/1 headers.setLocation(ucb.path("/person/{id}").buildAndExpand(person.getId()).toUri()); return new ResponseEntity&lt;&gt;(headers, HttpStatus.CREATED); } 退还一些东西 …

6
Spring MVC:如何执行验证?
我想知道什么是执行用户输入的表单验证的最干净,最好的方法。我已经看到一些开发人员实现了org.springframework.validation.Validator。有一个问题:我看到它验证了一个类。是否必须使用用户输入的值手动填充该类,然后将其传递给验证器? 我对验证用户输入的最干净,最好的方法感到困惑。我知道传统的使用方法request.getParameter()然后手动检查的方法nulls,但是我不想在我的工具中进行所有的验证Controller。在这方面的一些好的建议将不胜感激。我没有在此应用程序中使用Hibernate。

3
servlet中的<mvc:annotation-driven />和<context:annotation-config />有什么区别?
我正在从Spring 2.5迁移到Spring 3。 他们介绍了&lt;mvc:annotation-driven /&gt;一些黑魔法。预期仅在servlet配置文件中声明。 在Spring 2.5中,我刚刚使用,&lt;context:annotation-config /&gt;并且&lt;context:component-scan base='...'/&gt;在application-context.xmlservlet分配器XML配置文件中声明了标记,并使用了要扫描的基本包。 因此,我想知道servlet config中的和标记之间有什么区别,mvc:annotation-driven并且context:annotation-config在Spring 3配置文件中可以消除什么?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.