小编ale*_*xbt的帖子

Spring MVC - 在控制器之间传递模型

我创建了一个控制器来执行一些业务逻辑并创建一个模型.如果我通过返回带有视图名称和模型的ModelAndView直接将此模型传递给视图 - 一切都运行良好.但现在我想在另一页显示结果.所以我使用"redirect:"前缀重定向到另一个控制器,但模型丢失了.

我错过了什么?

此致,Oleksandr

spring-mvc

5
推荐指数
2
解决办法
2万
查看次数

带参数的Portlet页面导航 - Spring MVC,WebSphere Portal和JSR 286

这是 一个场景:我们在Webphere Portal Server 6.1和Spring MVC上运行了一个应用程序.有一个页面包含一个portlet,显示一个充满记录的网格.单击其中一条记录后,它必须导航到位于不同页面上的另一个portlet - 可能甚至是同一门户网站服务器上的不同portlet应用程序 - 并显示该特定记录.

这是一个问题: 我已经读过,通过使用Portal 2.0的"公共渲染参数",您可以在Portlet之间共享数据 - 这应该可以解决我的大部分问题.麻烦的是,我无法找到使用Spring MVC时的工作原理.我在Spring MVC技术文档中找不到"公共渲染参数"的引用,但是有些人说他们有它工作.有人可以告诉我具体的详细文档,或者给我一个示例的小代码snippit,显示我如何在我的控制器类中访问这些公共呈现参数?此外,如果有更好的方法在我的环境中实现这一点,它是什么,我在哪里可以找到一个例子?请不要回答," 如果您需要这样做,您不应该使用门户网站 "或" 如果您使用XYZ技术,那么您可以这样做 ".我无法改变环境 - 它就是这样 - 我只需要让它发挥作用!:) 谢谢!

portal spring-mvc websphere-portal

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

Spring AOP创建了额外的bean

我正在玩Spring AOP.

这是一个简单的课程

public class CModel extends Car {
    private double torqueMeasure = 1;

    public CModel() {
        System.out.println(" C-Model constructor");        
    }
}
Run Code Online (Sandbox Code Playgroud)

Spring配置就是这样的

<aop:config>
    <aop:aspect ref="audit">
        <aop:before pointcut="execution(* com.test.main..*(..))" method="firstControl"/>
            ...
    </aop:aspect>
</aop:config>
Run Code Online (Sandbox Code Playgroud)

现在可以; 当我添加aop:config并拦截CModel然后Spring调用CModel构造函数两次.这意味着Spring创建了2个CModel对象,对吧?

如果我删除AOP配置,那么Spring只创建一个CModel对象.

知道为什么会这样吗?

谢谢.

java aop spring spring-aop

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

如何在nginx上部署Spring Web应用程序?

我想在nginx中部署基于Spring的Web应用程序?

谁能建议我最好的方法论?

谢谢和问候Vijay

nginx spring-mvc

5
推荐指数
0
解决办法
626
查看次数

Spring和Servlet 3.0 Java配置混乱

上下文:
我从基于XML的Spring配置切换到了基于Java的配置.我的应用程序有一个基于JSP的Web层,Spring MVC,Spring Security和Hibernate作为持久性提供程序.
我设法在不同的配置类中分离整个XML配置:
WebConfig- 用于Spring MVC配置;
PersistenceConfig - 正如名称所述 - 用于JPA配置;
ServiceConfig - 仅适用于@Service和@Component注释类;
SecurityConfig - 用于Spring安全配置.

对于应用程序初始化,我有SecurityInitializerWebAppInitializer类.

这是一些代码:

WebConfig

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = {"com.demo.app.web"})
public class WebConfig extends WebMvcConfigurerAdapter { /* Bean initialization */ }  
Run Code Online (Sandbox Code Playgroud)

PersistenceConfig

@Configuration
@ComponentScan(basePackages = {"com.demo.app.dao"})
@EnableTransactionManagement(mode = AdviceMode.PROXY, proxyTargetClass = true)
public class PersistenceConfig { /* Bean initialization */ }  
Run Code Online (Sandbox Code Playgroud)

ServiceConfig

@Configuration
@ComponentScan(basePackages = {"com.demo.app.service", "com.demo.app.component"})
public class ServiceConfig { /* Bean initialization */ }  
Run Code Online (Sandbox Code Playgroud)

SecurityConfig

@Configuration …
Run Code Online (Sandbox Code Playgroud)

java configuration spring servlet-3.0

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

在 Docker 容器中构建 Java Gradle 项目?

我们有一个用 Gradle 构建的 Java 项目,它需要 Java 8 等。开发人员在他们的机器上有不同的 Java 版本(不同的项目,IDEA 一直对 Open JDK 很挑剔,但我们用它来运行我们的应用程序),我们希望能够轻松地使用正确的 Java 版本进行构建。

这个想法是使用 Docker 来完成任务,即使用正确的 Java 版本启动一个 docker 容器并将其用于构建(编译、测试、组装等)。

这是一个好主意吗?我该怎么办?例如,我是否告诉 Gradle 启动容器,并告诉它使用它的 javac?或者我是否启动容器,使用项目代码安装卷,然后在该容器中使用 Gradle 进行构建?这会有一个缺点,即人们需要先启动一个容器,但我想它可以被脚本化。

有没有人做这样的事情?

java openjdk gradle docker

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

当我的域标识符为 String 类型时,如何使用 Spring Security ACL?

当我尝试使用MutableAclService.createAcl(ObjectIdentity objectIdentity).

问题是ObjectIdentity使用Serializable类型作为标识符。同时,我的域String为此目的使用类型。Id 以这种方式生成:

String id = UUID.randomUUID().toString();
Run Code Online (Sandbox Code Playgroud)

然后我尝试使用以下结构添加 ACL:

ObjectIdentity identity = new ObjectIdentityImpl(clazz, id);
aclService.createAcl(identity);
Run Code Online (Sandbox Code Playgroud)

之后,我收到以下异常:

java.lang.NumberFormatException:对于输入字符串:“ad169805-a2d1-4324-ba11-c98cc679e594”

我发现 Spring Security ACL 使用Long类型作为标识符。

所以,问题是:

  1. 在这种情况下,最佳实践是什么(例如,我是否需要使用对象的哈希码作为标识符,或者其他什么)?
  2. 为什么Serializable到处都提到,但实际上它必须很长?

PS 标识符的 SQL 数据类型也是数字 - bigserial。

java spring-security-acl

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

Spring Cloud 流式传输并消费多个 kafka 主题

在尝试在一个中使用多个主题时,我遇到了 spring-boot-stream 的问题@StreamListener

根据 spring-cloud-stream 文档: 根据文档:

目的地

绑定中间件上通道的目标目的地(例如,RabbitMQ 交换或 Kafka 主题)。如果通道被绑定为消费者,则它可以绑定到多个目标,并且目标名称可以指定为逗号分隔的 String value。如果未设置,则使用通道名称。无法覆盖此 > 属性的默认值。

但是,在我使用下一个配置之后:

spring:
  cloud:
    stream:
      bindings:
        testchannel:
          group: test
          destination: platform.metrics, platform.sleuth
Run Code Online (Sandbox Code Playgroud)

现在我遇到了下一个错误:

Caused by: java.lang.IllegalArgumentException: Topic name can only have ASCII alphanumerics, '.', '_' and '-'
    at org.springframework.cloud.stream.binder.kafka.utils.KafkaTopicUtils.validateTopicName(KafkaTopicUtils.java:39) ~[spring-cloud-stream-binder-kafka-core-1.2.1.RELEASE.jar:1.2.1.RELEASE]
    at org.springframework.cloud.stream.binder.kafka.provisioning.KafkaTopicProvisioner.provisionProducerDestination(KafkaTopicProvisioner.java:107) ~[spring-cloud-stream-binder-kafka-core-1.2.1.RELEASE.jar:1.2.1.RELEASE]
    at org.springframework.cloud.stream.binder.kafka.provisioning.KafkaTopicProvisioner.provisionProducerDestination(KafkaTopicProvisioner.java:60) ~[spring-cloud-stream-binder-kafka-core-1.2.1.RELEASE.jar:1.2.1.RELEASE]
    at org.springframework.cloud.stream.binder.AbstractMessageChannelBinder.doBindProducer(AbstractMessageChannelBinder.java:110) ~[spring-cloud-stream-1.2.2.RELEASE.jar:1.2.2.RELEASE]
    ... 20 common frames omitted
Run Code Online (Sandbox Code Playgroud)

如何将多个主题绑定到一个@StreamListner或从主题列表生成动态流监听器?

spring spring-integration apache-kafka spring-boot

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

将404错误页面重定向到Tomcat中我的Spring MVC webapp的自定义页面

我正在使用tomcat 7,我已经在tomcat 7中构建并部署了一个Spring MVC webapp,它的工作非常好.我想要的是,每当我的服务器上发生404错误时,它应该被重定向到我在webapp中构建的自定义页面.我已将我的webapp配置为tomcat中的默认webapp.

我试过这样做:

<error-page>
    <error-code>404</error-code>
    <location>/WEB-INF/templates/error/error.html</location>
</error-page>
Run Code Online (Sandbox Code Playgroud)

但一切都是徒劳的.

很高兴,如果有人可以帮我解决这个问题.

java spring-mvc tomcat7

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

Spring MVC和JSR 303验证导致错误400

好.我有一个Spring MVC控制器方法如下:

public String getInformationByGID(@ModelAttribute("geoInfoParam") @Valid GeoInfoParam geoInfoParam, Model model ,BindingResult result)
Run Code Online (Sandbox Code Playgroud)

GeoInfoParam类定义有许多带@NotNull,@ Size带注释的验证的输入,我希望在提交表单时执行它(因为我有@Valid和ModelAttribute).但是发生了什么,当我点击提交时,页面显示400错误,并且没有在日志中显示任何其他信息.

spring-mvc hibernate-validator bean-validation

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