这是我的语言环境配置
<bean id="messageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basename" value="classpath:messages" />
<property name="defaultEncoding" value="UTF-8" />
</bean>
<bean id="localeChangeInterceptor"
class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
<property name="paramName" value="lang" />
</bean>
<bean id="localeResolver"
class="org.springframework.web.servlet.i18n.CookieLocaleResolver">
<property name="defaultLocale" value="en"/>
</bean>
<bean id="handlerMapping"
class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
<property name="interceptors">
<ref bean="localeChangeInterceptor" />
</property>
</bean>
Run Code Online (Sandbox Code Playgroud)
当我尝试使用控制器在控制器中调用语言环境时
@RequestMapping(value = "customers/customer-{idCustomer:[0-9]+}/detail", method = RequestMethod.GET)
public ModelAndView detail(Map<String, Object> map, @PathVariable Integer idCustomer, Locale locale) {
logger.info(locale.toString());
logger.info(request.getLocale().toString());
...
}
Run Code Online (Sandbox Code Playgroud)
它返回不同的值。但是,当我在 URL 中使用 GET param 在站点上切换语言时?lang=en,它不会改变提到的控制器调用中的任何内容。i18n 工作正常,它从正确的文件加载标签。但我想在我的控制器中获得更改的语言。我想在打开的页面上独立获取所选语言(lang在 URL 中有/没有请求参数)。
我在debbuging我的Android应用程序时发现了奇怪的行为.
有表达式:
if (r == true)
Run Code Online (Sandbox Code Playgroud)
其中var r具有值true但整个语句为false.我尝试使用对象Boolean和原始类型boolean.
我确信我犯了一些基本错误.
这是debbuger的屏幕.

编辑:
我正在使用java.lang.Boolean.
方法isSyncRequired返回Boolean.TRUE并在if-else块中进行比较.
if(isSyncRequired(s))
if (r)
if (r == true)
Run Code Online (Sandbox Code Playgroud)
不要工作.
我想保留控制器的实例而不重新加载.我设置reloadOnSearch为false,我在控制器中管理路由更改.这是代码.
这是我链接的示例<a href="products/page/2">next</a>.我已经定义了以下模块.
angular.module('app.products', ['ngRoute', 'ngResource'])
.config(['$routeProvider', function ($routeProvider) {
$routeProvider
.when('/:section/:view/:number', {
templateUrl: 'tpl/table.html',
controller: 'ProductsCtrl',
controllerAs: 'productsCtrl',
reloadOnSearch: false
});
}])
.controller('ProductsCtrl', ['$scope', '$routeParams', '$location', ProductsCtrl]);
Run Code Online (Sandbox Code Playgroud)
调节器
function ProductsCtrl($scope, $routeParams, $location) {
$scope.$on('$routeUpdate', function () {
console.log("routeUpdate");
});
}
Run Code Online (Sandbox Code Playgroud)
但是控制器不会响应更改的路由,并且文本不会写入控制台输出.
我在 web 应用程序中使用 spring 框架,我想加载存储在类路径之外的资源(*.jpeg)。
我正在调用GET某个控制器的方法。当我从类路径调用照片时它起作用。但是当我调用诸如:
/ext/media/photos/photo.png, file:/ext/media/photos/photo.png, /home/user/ext/media/photos/photo.png, 之类的路径时http://some-web-image,它不起作用。
@RequestMapping(value = "/loadPhoto", method = RequestMethod.GET, produces = MediaType.IMAGE_PNG_VALUE)
public ResponseEntity<byte[]> loadPhoto() throws IOException {
InputStream in = servletContext.getResourceAsStream("/ext/media/photos/photo.png");
return new ResponseEntity<byte[]>(IOUtils.toByteArray(in), HttpStatus.CREATED);
}
Run Code Online (Sandbox Code Playgroud)
我尝试将 url 映射到 spring 上下文中的真实位置
<mvc:resources mapping="/ext/media/photos/**" location="file:/home/user/ext/media/photos/"/>
Run Code Online (Sandbox Code Playgroud)
但我还是拿不到资源。这是获取类路径之外的资源的正确方法吗?
我在JSP页面上遇到了编码问题.我在我的项目中使用Spring框架和Maven.
我已经设置了编码
Maven的
<properties>
<spring.version>3.0.2.RELEASE</spring.version>
<cxf.version>2.7.5</cxf.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
Run Code Online (Sandbox Code Playgroud)
弹簧
<filter>
<filter-name>charsetEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>charsetEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Run Code Online (Sandbox Code Playgroud)
JSP(通过html元)
<meta http-equiv='content-type' content='text/html;charset=utf-8' />
Run Code Online (Sandbox Code Playgroud)
我从服务器及其编码中跟踪了返回的文档.这是对的 - UTF-8.
在JSP页面上有:
š??žýáíé但我只有静态文本的问题,它显示文本ľšÄťžýáÃé.
有没有解决这个问题的想法?
我在从JSP文件访问集合时遇到问题。应用程序基于MVC Spring框架。我把OpenSessionInViewFilter过滤器放在我的web.xml. 当我想使用提到的文件访问 URL 时,它会抛出我
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.app.cloud.hibernate.Product.availabilities, no session or session was closed
我在我的应用程序中使用域驱动设计。当我将类中的 fetch 类型Product从更改FetchType.LAZY为 时FetchType.EAGER,它起作用了。
堆栈跟踪
SEVERE: Servlet.service() for servlet [spring] in context with path [] threw exception [org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.app.cloud.hibernate.Product.availabilities, no session or session was closed] with root cause
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.app.cloud.hibernate.Product.availabilities, no …Run Code Online (Sandbox Code Playgroud) 我尝试以YYYY-MM-DD HH:mm:ss格式解析日期
String now = "2012-11-02 12:02:00";
DateFormat formatter;
formatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
Date date_temp = (Date) formatter.parse(now.toString());
System.out.println("output: " + date_temp);
Run Code Online (Sandbox Code Playgroud)
它给了我以下例外
java.text.ParseException: Unparseable date: "2012-11-02 12:02:00"
Run Code Online (Sandbox Code Playgroud) 我有简单的代码,它仍然抛出我unparseable date exception.我很困惑,模式似乎是正确的.
DateFormat dffrom = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy");
dffrom.parse("Sun Jan 20 00:50:24 CET 2013");
Run Code Online (Sandbox Code Playgroud)
我也试过这些模式:
"EEE MMM dd HH:mm:ss z yyyy"
"EEE MMM dd HH:mm:ss z YYYY"
"EEE MMM dd HH:mm:ss zzz YYYY"
Run Code Online (Sandbox Code Playgroud) 我正在使用基于docker镜像的docker容器tomcat:7-jre8.Tomcat在前台运行,并且catalina日志被发送到stdout.该文件catalina.out不包含任何日志.我想将日志重定向stdout到文件catalina.out,因为我想将日志存储在docker容器之外.我正在主机上使用挂载卷.
使用以下命令启动Tomcat Dockerfile:
CMD ["bin/catalina.sh", "run"]
Run Code Online (Sandbox Code Playgroud)
你能给我一些如何将日志重定向到文件的提示吗?
我尝试用bin/startup.sh脚本运行tomcat ,但它不起作用.服务正确吗?