最近,我查看了spring 2.3 webflow预订面孔演示,我发现每次点击"浏览"酒店详细信息时都会分配不同的流程执行密钥.
当我搜索酒店和页面到搜索结果的第5页时,我得到一个URL execution=e1s2.然后我点击浏览酒店详细信息,我得到一个URL execution=e1s3.但是,当我单击"返回搜索"按钮时,我发现页面被定向到带有execution=e1s4URL 的搜索列表的第一页,并且错过了分页状态.但是,浏览步骤在具有酒店搜索行为的相同流程定义中定义,并且在流程范围内定义了分页var.
我的问题是新的执行密钥参数是否意味着新的流程执行?什么是语义?如果是这样,当我单击"返回搜索"按钮时,如何配置以保持相同的流程执行.
谢谢
有没有人一起配置Spring 4.2.3.RELEASE和Hibernate 5.0.4.Final?来自Spring的官方文档说从版本4.2开始支持Hibernate版本5.但是如果将它们配置在一起我总是得到以下异常
Exception in thread "main" java.lang.NoSuchMethodError: org.springframework.aop.framework.autoproxy.AutoProxyUtils.determineTargetClass(Lorg/springframework/beans/factory/config/ConfigurableListableBeanFactory;Ljava/lang/String;)Ljava/lang/Class;
at org.springframework.context.event.EventListenerMethodProcessor.afterSingletonsInstantiated(EventListenerMethodProcessor.java:78)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:792)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:838)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:537)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
at me.shafin.sustord.dao.App.main(App.java:8)
Run Code Online (Sandbox Code Playgroud)
这是pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.springframework.samples.service.service</groupId>
<artifactId>RokomiMoc</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<properties>
<!-- Generic properties -->
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!-- Web -->
<jsp.version>2.3.1</jsp.version>
<jstl.version>1.2</jstl.version>
<servlet.version>3.1.0</servlet.version>
<!-- Spring -->
<spring-framework.version>4.2.3.RELEASE</spring-framework.version>
<spring-security.version>3.2.5.RELEASE</spring-security.version>
<!-- Hibernate -->
<hibernate-framework.version>5.0.4.Final</hibernate-framework.version>
<!-- Validator -->
<hibernate.validator.version>5.0.1.Final</hibernate.validator.version>
<javax.validation.version>1.1.0.Final</javax.validation.version>
<!-- File upload -->
<commons-fileupload.version>1.3.1</commons-fileupload.version>
<!-- Logging -->
<logback.version>1.0.13</logback.version>
<slf4j.version>1.7.5</slf4j.version>
<!-- Test -->
<junit.version>4.11</junit.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies> …Run Code Online (Sandbox Code Playgroud) 我有一个地图列表如下。
我想按键对条目集进行分组,如果键不存在,则填写 0。
List<Map<String, Double>> props = Lists.newArrayList();
Map<String, Double> m1 = Maps.newHashMap();
m1.put("a", 0.1);
m1.put("b", 0.5);
m1.put("c", 0.6);
Map<String, Double> m2 = Maps.newHashMap();
m2.put("a", 0.3);
m2.put("d", 0.1);
Map<String, Double> m3 = Maps.newHashMap();
m3.put("a", 0.2);
props.add(m1); props.add(m2); props.add(m3);
Run Code Online (Sandbox Code Playgroud)
预期结果:
{a=[0.1, 0.3, 0.2], b=[0.5, 0, 0], c=[0.6,0,0], d=[0,0.1,0]}
Run Code Online (Sandbox Code Playgroud)
我有个主意:
有什么好主意吗?
我从JDBC 4.0 就已经知道了。和JDK 6一样,在类路径中找到的驱动程序会自动加载。这就是我们在创建 JDBC 连接时习惯忽略该Class.forName(dbDriver);行代码的原因。
但最近我安装了MySQL Server 8.0.11并将驱动程序更新到 在tomcat 8.5.30mysql-connector-java:8.0.11上运行的简单 Servlet 项目中。但这给了我臭名昭著的例外
java.sql.SQLException: No suitable driver found for
jdbc:mysql://localhost:3306/mysql at ...
Run Code Online (Sandbox Code Playgroud)
但我所有的代码之前都工作正常。然后我添加了Class.forName("com.mysql.jdbc.Driver");
它有效。我想我没有错过任何事情。谁能向我解释一下这可能是什么原因?