我试图在String中获取HttpServletRequest的主体.这样做的最佳方式是什么?
我有一个带有以下注释的控制器
@Autowired
ServletContext servletContext;
Run Code Online (Sandbox Code Playgroud)
这似乎工作正常,并正确地自动装配servlet上下文.但是,当我尝试运行junit时,我得到以下异常:
org.springframework.beans.factory.BeanCreationException:创建名为'ControllerTest'的bean时出错:注入自动连接的依赖项失败; 嵌套异常是org.springframework.beans.factory.BeanCreationException:无法自动装配字段:javax.servlet.ServletContext
奇怪的问题是,这只发生在ServletContext上,我在这个特定的控制器上有其他bean自动装配,并且单元测试适用于那些.
任何建议都会非常有帮助.
我在数据库中有一些数据,并希望能够将其导出到CSV文件并提供链接,以便用户可以下载它.
Spring 3是否为此提供了任何机制?
你知道我怎么能这样做?
我是新手使用弹簧3并且已经卡住了一段时间.
你知道如何从jsp访问messages.properties.例如,在控制器中我为我的模型设置了一个值:
model.setError("user.not.found")
Run Code Online (Sandbox Code Playgroud)
messages.properties:
user.not.found=Sorry, we haven't been able to found this user
Run Code Online (Sandbox Code Playgroud)
在jsp我希望能够做到
${model.error}
Run Code Online (Sandbox Code Playgroud)
并显示"抱歉......".但是,当我使用@Valid ...,bindingResult然后在表单中时,我总是得到"user.not.found",即使它工作正常.
谢谢,
我目前正在使用Windows 7,64位.我用spring roo安装了一个干净版本的sts 2.7.2,起初一切都在起伏不定.后来,我尝试安装spring roo 1.1.5的独立版本.一旦我输入roo,我就开始获得以下堆栈跟踪:
[org.springframework.roo.felix [44]] [org.springframework.roo.felix.pgp.PgpServiceImpl] The activate method has thrown an exc
eption
org.apache.felix.log.LogException: java.lang.IllegalArgumentException: java.io.IOException: unknown object in stream: 7
at org.springframework.roo.felix.pgp.PgpServiceImpl.getTrustedKeys(PgpServiceImpl.java:152)
at org.springframework.roo.felix.pgp.PgpServiceImpl.trust(PgpServiceImpl.java:168)
at org.springframework.roo.felix.pgp.PgpServiceImpl.trustDefaultKeys(PgpServiceImpl.java:110)
at org.springframework.roo.felix.pgp.PgpServiceImpl.trustDefaultKeysIfRequired(PgpServiceImpl.java:93)
at org.springframework.roo.felix.pgp.PgpServiceImpl.activate(PgpServiceImpl.java:86)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.felix.scr.impl.helper.BaseMethod.invokeMethod(BaseMethod.java:227)
at org.apache.felix.scr.impl.helper.BaseMethod.access$500(BaseMethod.java:38)
at org.apache.felix.scr.impl.helper.BaseMethod$Resolved.invoke(BaseMethod.java:591)
at org.apache.felix.scr.impl.helper.BaseMethod.invoke(BaseMethod.java:472)
at org.apache.felix.scr.impl.helper.ActivateMethod.invoke(ActivateMethod.java:146)
at org.apache.felix.scr.impl.manager.ImmediateComponentManager.createImplementationObject(ImmediateComponentManager.java:
226)
at org.apache.felix.scr.impl.manager.ImmediateComponentManager.createComponent(ImmediateComponentManager.java:118)
at org.apache.felix.scr.impl.manager.DelayedComponentManager.createRealComponent(DelayedComponentManager.java:95)
at org.apache.felix.scr.impl.manager.AbstractComponentManager$Registered.getService(AbstractComponentManager.java:1148)
at org.apache.felix.scr.impl.manager.DelayedComponentManager.getService(DelayedComponentManager.java:88)
at org.apache.felix.framework.ServiceRegistrationImpl.getFactoryUnchecked(ServiceRegistrationImpl.java:310)
at org.apache.felix.framework.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:221)
at org.apache.felix.framework.ServiceRegistry.getService(ServiceRegistry.java:297)
at org.apache.felix.framework.Felix.getService(Felix.java:3139)
at org.apache.felix.framework.BundleContextImpl.getService(BundleContextImpl.java:411)
at org.apache.felix.scr.impl.manager.DependencyManager.getService(DependencyManager.java:785) …
我正在使用spring security,我想知道如何更改默认登录表单.
我已经设置了以下配置:
<http auto-config="true" use-expressions="false">
<form-login login-processing-url="/static/j_spring_security_check"
login-page="/login"
authentication-failure-url="/login?login_error=t"/>
<intercept-url pattern="/**"
access="ROLE_ADMIN" />
</http>
Run Code Online (Sandbox Code Playgroud)
在控制器中我有以下内容:
@Controller
@RequestMapping("login")
public class Logincontroller {
/**
* the logger used for print useful information
*/
protected final Log logger = LogFactory.getLog(getClass());
@RequestMapping(value="",method=RequestMethod.GET)
public String showLoginView(Map<String, Object> model) {
return WebappConstants.HOME_VIEW;
}
Run Code Online (Sandbox Code Playgroud)
}
但是,当我在浏览器中单击一个URL时,它说该页面没有正确重定向(Firefox).我检查了firebug并打开调试器,以便有效地检查此代码是否没有调用我的控制器.
我做错了吗?
spring-mvc ×2
csv ×1
inputstream ×1
junit4 ×1
servlets ×1
spring ×1
spring-roo ×1
validation ×1