小编mis*_*sco的帖子

如何获取控制器中的当前语言?

这是我的语言环境配置

<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 中有/没有请求参数)。

java spring spring-mvc

3
推荐指数
1
解决办法
2515
查看次数

为什么布尔值TRUE不为TRUE?

我在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)

不要工作.

java boolean

2
推荐指数
1
解决办法
261
查看次数

为什么控制器不响应路由更新?

我想保留控制器的实例而不重新加载.我设置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)

但是控制器不会响应更改的路由,并且文本不会写入控制台输出.

angularjs angularjs-routing angularjs-controller

2
推荐指数
1
解决办法
3679
查看次数

如何加载类路径之外的资源?

我在 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)

但我还是拿不到资源。这是获取类路径之外的资源的正确方法吗?

java resources spring

2
推荐指数
1
解决办法
2378
查看次数

JSP页面上的静态文本编码错误

我在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页面上有:

  • 静态文本,例如 š??žýáíé
  • 数据库中的动态文本

但我只有静态文本的问题,它显示文本ľšÄťžýáíé.

有没有解决这个问题的想法?

encoding spring jsp

1
推荐指数
1
解决办法
530
查看次数

集合的初始化抛出 LazyInitializationException

我在从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)

spring jsp hibernate spring-mvc lazy-initialization

1
推荐指数
1
解决办法
7644
查看次数

解析日期的例外YYYY-MM-DD HH:mm:ss

我尝试以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)

java formatting date

0
推荐指数
1
解决办法
4534
查看次数

SimpleDateFormat:具有正确模式的不可解析日期异常

我有简单的代码,它仍然抛出我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)

java date

0
推荐指数
1
解决办法
983
查看次数

如何将日志从tomcat docker容器发送到catalina.out?

我正在使用基于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 ,但它不起作用.服务正确吗?

logging tomcat docker

0
推荐指数
1
解决办法
3428
查看次数