我创建了一个控制器来执行一些业务逻辑并创建一个模型.如果我通过返回带有视图名称和模型的ModelAndView直接将此模型传递给视图 - 一切都运行良好.但现在我想在另一页显示结果.所以我使用"redirect:"前缀重定向到另一个控制器,但模型丢失了.
我错过了什么?
此致,Oleksandr
这是 一个场景:我们在Webphere Portal Server 6.1和Spring MVC上运行了一个应用程序.有一个页面包含一个portlet,显示一个充满记录的网格.单击其中一条记录后,它必须导航到位于不同页面上的另一个portlet - 可能甚至是同一门户网站服务器上的不同portlet应用程序 - 并显示该特定记录.
这是一个问题: 我已经读过,通过使用Portal 2.0的"公共渲染参数",您可以在Portlet之间共享数据 - 这应该可以解决我的大部分问题.麻烦的是,我无法找到使用Spring MVC时的工作原理.我在Spring MVC技术文档中找不到"公共渲染参数"的引用,但是有些人说他们有它工作.有人可以告诉我具体的详细文档,或者给我一个示例的小代码snippit,显示我如何在我的控制器类中访问这些公共呈现参数?此外,如果有更好的方法在我的环境中实现这一点,它是什么,我在哪里可以找到一个例子?请不要回答," 如果您需要这样做,您不应该使用门户网站 "或" 如果您使用XYZ技术,那么您可以这样做 ".我无法改变环境 - 它就是这样 - 我只需要让它发挥作用!:) 谢谢!
我正在玩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对象.
知道为什么会这样吗?
谢谢.
我想在nginx中部署基于Spring的Web应用程序?
谁能建议我最好的方法论?
谢谢和问候Vijay
上下文:
我从基于XML的Spring配置切换到了基于Java的配置.我的应用程序有一个基于JSP的Web层,Spring MVC,Spring Security和Hibernate作为持久性提供程序.
我设法在不同的配置类中分离整个XML配置:
WebConfig- 用于Spring MVC配置;
PersistenceConfig - 正如名称所述 - 用于JPA配置;
ServiceConfig - 仅适用于@Service和@Component注释类;
SecurityConfig - 用于Spring安全配置.
对于应用程序初始化,我有SecurityInitializer和WebAppInitializer类.
这是一些代码:
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) 我们有一个用 Gradle 构建的 Java 项目,它需要 Java 8 等。开发人员在他们的机器上有不同的 Java 版本(不同的项目,IDEA 一直对 Open JDK 很挑剔,但我们用它来运行我们的应用程序),我们希望能够轻松地使用正确的 Java 版本进行构建。
这个想法是使用 Docker 来完成任务,即使用正确的 Java 版本启动一个 docker 容器并将其用于构建(编译、测试、组装等)。
这是一个好主意吗?我该怎么办?例如,我是否告诉 Gradle 启动容器,并告诉它使用它的 javac?或者我是否启动容器,使用项目代码安装卷,然后在该容器中使用 Gradle 进行构建?这会有一个缺点,即人们需要先启动一个容器,但我想它可以被脚本化。
有没有人做这样的事情?
当我尝试使用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类型作为标识符。
所以,问题是:
Serializable到处都提到,但实际上它必须很长?PS 标识符的 SQL 数据类型也是数字 - bigserial。
在尝试在一个中使用多个主题时,我遇到了 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或从主题列表生成动态流监听器?
我正在使用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)
但一切都是徒劳的.
很高兴,如果有人可以帮我解决这个问题.
好.我有一个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错误,并且没有在日志中显示任何其他信息.
java ×5
spring-mvc ×5
spring ×3
aop ×1
apache-kafka ×1
docker ×1
gradle ×1
nginx ×1
openjdk ×1
portal ×1
servlet-3.0 ×1
spring-aop ×1
spring-boot ×1
tomcat7 ×1