Tag: spring mvc

如何更改Spring MVC处理url’dot’字符的行为

我正在尝试将一个Web项目从Jersey迁移到Spring MVC 3.0。 这个过程非常简单,直到我开始使用点符号迁移应该处理URL的控制器:“/ myApp / resources / create / root.subFolder1 ”。 Spring MVC似乎无耻地从URL中删除了“.subFolder1”部分,它发生在框架代码内部(参见AbstractUrlHandlerMapping类) uriTemplateVariables.putAll(getPathMatcher().extractUriTemplateVariables(matchingPattern, urlPath)); 所以我的控制器方法是用root path参数调用的,而不是root.subFolder1 我真的想找到一种方法来自定义这种行为。 有什么建议吗? PS。 要求有点保持现有的URL结构,即切换到查询参数“/ myApp / resources / create / ?path = root.subFolder1 ”的变通方法,我无法考虑。 PS。 我的Spring配置看起来像

将MultipartFile转换为java.io.File而不复制到本地计算机

我有一个Java Spring MVC Web应用程序。 从客户端到AngularJS,我上传文件并将其作为webservice发布到Controller。 在我的控制器中,我将其作为MultipartFile获取 ,我可以将其复制到本地计算机。 但我想将文件上传到Amazone S3存储桶。 所以我必须将其转换为java.io.File 。 现在我正在做的是,我将它复制到本地机器,然后使用jets3t上传到S3。 这是我在控制器中转换的方式 MultipartHttpServletRequest mRequest=(MultipartHttpServletRequest)request; Iterator itr=mRequest.getFileNames(); while(itr.hasNext()){ MultipartFile mFile=mRequest.getFile(itr.next()); String fileName=mFile.getOriginalFilename(); fileLoc=”/home/mydocs/my-uploads/”+date+”_”+fileName; //date is String form of current date. 然后我使用SpringFramework的FIleCopyUtils File newFile = new File(fileLoc); // if the directory does not exist, create it if (!newFile.getParentFile().exists()) { newFile.getParentFile().mkdirs(); } FileCopyUtils.copy(mFile.getBytes(), newFile); 因此它将在本地计算机中创建一个新文件。 那个文件我在S3上面了 S3Object […]

Spring是否要求所有bean都有默认构造函数?

我不想为auditRecord类创建默认构造函数。 但是Spring似乎坚持这样做: org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘auditRecord’ defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com.bartholem.AuditRecord]: No default constructor found; nested exception is java.security.PrivilegedActionException: java.lang.NoSuchMethodException: com.bartholem.AuditRecord 这真的有必要吗?

在我的spring项目中,ServletDispatcher无法强制转换为Javax.servlet.Servletexception

在启动tomcat服务器时,我得到一个例外 SEVERE: Servlet /MavenWeb threw load() exception java.lang.ClassCastException: org.springframework.web.servlet.DispatcherServlet cannot be cast to javax.servlet.Servlet 我正在使用spring3,但我的lib文件夹中有jar spring2-5-6,我从pom.xml中删除它但仍然出现在lib文件夹中 – 虽然我不确定这是否是一个问题。 我正在使用Eclipse IDE。 谢谢!! org.hibernate.javax.persistence hibernate-jpa-2.1-api 1.0.0.Draft-6 compile org.hibernate hibernate-annotations 3.5.6-Final compile org.springframework spring-beans 3.1.2.RELEASE compile org.springframework spring-context 3.1.2.RELEASE compile org.springframework spring-web 3.1.2.RELEASE compile org.springframework spring-tx 3.1.2.RELEASE compile org.springframework spring-webmvc 3.1.2.RELEASE compile javax.servlet javax.servlet-api 3.1-b01 compile org.springframework spring-webflow […]

403 ajax GET请求Spring的禁止错误

每次我尝试从数据库中GET用户的信息时,我都会收到403 forbidden错误。 关于我的下面的代码,每次我按下Ajax测试按钮尝试请求时,它都无法运行并给我一个警报,但在控制台中也给了我一个403 Forbidden -error。 我不确定它是否与Spring安全性有关? 用户JSP页面: User Id Full Name Username Email Date of Birth User Authority Update Delete <a id="update" href="https://stackoverflow.com/questions/19091206/403-forbidden-error-with-ajax-get-request-spring/”>Update <a id="delete" href="https://stackoverflow.com/questions/19091206/403-forbidden-error-with-ajax-get-request-spring/”>Delete Ajax test $(document).ready(function(){ $(“.loadUser”).click(function(e) { e.preventDefault(); var personId = +$(this).val(); $.get(‘${pageContext.request.contextPath}/SDP/ajaxTest/’ + personId, function(user) { $(‘#personIdResponse’).text(user.name + ‘, = username ‘ + user.username); }) .fail(function(user){ alert(‘Could not load user’); […]

使用Spring AOP && MVC订购方面

我正在尝试使用Spring AOP和Spring MVC Controller。 我有3个方面,并希望按特定顺序。 为了做到这一点,我使用Ordered接口并实现getOrder方法: @Aspect @Component public class LoggingAspect implements Ordered{ public int getOrder() { System.out.println(“Abra”); return 1; } 建议课程: @Component @Controller public class HomeController { 切入点: @Aspect public class SystemArchitecture { @Pointcut(“execution (* com.jajah.StorageManager.HomeController.*(..))”) public void inHomeController(){} @Pointcut(“execution (* com.jajah.StorageManager.HomeController.*(..))”) public void loggable(){} @Pointcut(“execution (* com.jajah.StorageManager.HomeController.*(..))”) public void authenticated(){} } 组态: <!– […]

当用户名和密码除了具有更多字段的登录页面时如何实现Spring安全性?

我有一个登录页面,用户需要在其中输入以下信息VIN号码,电子邮件,邮政编码和accessCode,它们将从不同的应用程序中获取。 因此,为了validation用户,我需要自定义UserDetailsService类中的所有信息,然后调用一个过程来validation用户。 但是当我实现UserDetailsService时,我看到了如下所示 @Component public class LoginService implements UserDetailsService { @Autowired LoginStoredProcedureDao loginStoredProcedureDao; public Map verifyLogin(LoginDetails details) { return loginStoredProcedureDao.verifyLogin(details); } @Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { // TODO Auto-generated method stub //verifyLogin(); return null; } } loginDetails对象如下所示 public class LoginDetails { String vin; String email; String zipcode; String accessCode; } 在上述情况下如何使用弹簧安全。 在这里,用户需要提供所有信息以validation他自己。

Spring 4加载静态资源

我有一个spring MVC应用程序,其中包含当前放在src/main/java/resources/assets目录中的一堆css和js文件。 我阅读了Spring Docs和一些关于如何使用ResourceHandlerRegistry类为我的模板加载这些文件的教程。 我特别认为本教程中的代码片段非常适合我的项目结构。 但是我的资源文件总是得到404。 这是我目前正在运行的Application / Configuration类: @Configuration @EnableAutoConfiguration @ImportResource(“/applicationContext.xml”) // only used for jpa/hibernate @EnableWebMvc @ComponentScan(basePackages = “at.sustain.docutools.viewer.presentation”) public class Application extends WebMvcConfigurerAdapter { public static void main(String args[]) { SpringApplication.run(Application.class); } @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler(“/assets/**”) .addResourceLocations(“classpath:/assets/”); registry.addResourceHandler(“/css/**”) .addResourceLocations(“/css/”); registry.addResourceHandler(“/js/**”) .addResourceLocations(“/js/”); } } 这里是我的HTML文件中使用的HEADer(放在资源/模板中): html文件是通过我的控制器类正确加载的,但是当我尝试点击例如我的style.css文件( http://localhost:8080/css/style.css )时,我得到了404,如上所述。 我似乎无法找到更多可以为Spring提供有关此主题的更多信息的资源。我是否会错过一些配置文件? 或者不是适合我的结构的资源处理程序注册? […]

Spring安全性为所有角色名称添加了前缀“ROLE_”?

我在Web Security Config中有这个代码: @Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .antMatchers(“/api/**”) .hasRole(“ADMIN”) .and() .httpBasic().and().csrf().disable(); } 所以我在我的数据库中添加了一个具有“ADMIN”角色的用户,当我尝试使用此用户登录时,我总是得到403错误,然后我启用了spring for log,我找到了这一行: 2015-10-18 23:13:24.112 DEBUG 4899 — [nio-8080-exec-1] osswaiFilterSecurityInterceptor : Secure object: FilterInvocation: URL: /api/user/login; Attributes: [hasRole(‘ROLE_ADMIN’)] 为什么Spring Security正在寻找“ROLE_ADMIN”而不是“ADMIN”?

在Spring MVC中的servlet映射中,如何映射url模式目录的根?

testServlet /test/* 如果我点击/测试/页面 ,上面的工作将会起作用。 但是,击中/测试或/ test /将不起作用。 我正在使用Spring MVC,我的请求映射如下: @RequestMapping(value = {“”,”/”}) 编辑: 我正在使用独立项目进行validation,但这似乎是Spring的UrlPathHelper的一个错误。 当存在上下文和servlet路径时,以下方法返回不正确的路径,并且在没有尾部斜杠的情况下命中servlet。 public String getPathWithinApplication(HttpServletRequest request) { String contextPath = getContextPath(request); String requestUri = getRequestUri(request); if (StringUtils.startsWithIgnoreCase(requestUri, contextPath)) { // Normal case: URI contains context path. String path = requestUri.substring(contextPath.length()); return (StringUtils.hasText(path) ? path : “/”); } else { // Special case: […]