在我更新到hibernate-validator 4.2.0.Final之后
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>4.2.0.Final</version>
<scope>runtime</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)
当尝试使用mvn install使用maven构建我的应用程序时, 我收到以下错误:
package org.hibernate.validator.constraints does not exist
cannot find symbol symbol : class NotBlank
Run Code Online (Sandbox Code Playgroud)
这是我的.classpath文件:
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/classes" path="src/main/java"/>
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>
Run Code Online (Sandbox Code Playgroud)
虽然日食没有错误.请指教.
我Authority在视图范围内有一个支持bean ,我有两个页面viewRoles并editRole映射到这个支持bean.
在viewRoles页面中有一个转到editRole页面的链接:
<h:form>
<h:commandLink value="#{au.displayName}" action="pretty:editRole">
<f:setPropertyActionListener target="#{authority.authorityId}" value="#{au.id}"/>
</h:commandLink>
</h:form>
Run Code Online (Sandbox Code Playgroud)
它导航到另一个页面,但该属性未设置,即使bean位于视图范围内并且两个页面都映射到同一个辅助bean.它仅在我将视图范围更改为会话范围时才有效.
注意:我的bean是由Spring管理的,这个视图范围也不是JSF的默认值@ViewScoped,它是我在http://cagataycivici.wordpress.com/2010/02/17/port-jsf-2-0s上找到的自定义范围.-viewscope-to-spring-3-0 /.我也使用PrettyFaces来管理我的导航.
问题是,上述场景是否应该与真正的JSF2一起使用,@ViewScoped @ManagedBean还是与Spring相关的问题或其他问题?请指教.
我在我的bean中有一个preRender视图事件,我在用户身上做了一些验证,当出现某些情况时,我使用prettyFaces将用户重定向到登录页面,但重定向似乎不起作用,我不知道知道原因,这是代码:
JSF:
<f:event type="preRenderView" listener="#{myBean.preRender}" />
Run Code Online (Sandbox Code Playgroud)
托管Bean:
public String preRender() {
log.debug("preRender myPage for user " + userId);
try {
User user = userService.getUserById(userId);
if (!user.isSomeCondition()) {
log.debug("Bad Condition");
return "pretty:login";
}
} catch (Exception e) {
log.error("Error in preRender myPage for user "
+ userId);
return "pretty:login";
}
return null;
}
Run Code Online (Sandbox Code Playgroud) 我正在使用log4j,我的配置如下:
log4j.rootLogger=OFF, stdout, rootLog
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
log4j.appender.rootLog=org.apache.log4j.RollingFileAppender
log4j.appender.rootLog.File=${user.home}/logs/mylog.log
log4j.appender.rootLog.MaxFileSize=10000KB
log4j.appender.rootLog.MaxBackupIndex=3
log4j.appender.rootLog.layout=org.apache.log4j.PatternLayout
log4j.appender.rootLog.layout.ConversionPattern=%p %t %c - %m%n
# Control/Limit integrated frameworks logging messages
log4j.logger.org.hibernate=OFF
log4j.logger.org.springframework=OFF
Run Code Online (Sandbox Code Playgroud)
虽然我关闭了根记录器和hibernate日志记录
我仍然在控制台中看到以下信息:
2099 [main] INFO org.hibernate.cfg.SettingsFactory
2440 [main] INFO org.hibernate.tool.hbm2ddl.SchemaExport
3239 [main] WARN org.hibernate.util.JDBCExceptionReporter
Run Code Online (Sandbox Code Playgroud)
如何制止,请指教,谢谢.
更新:记录jar/dependencies:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.5.8</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.15</version>
<exclusions>
<exclusion>
<groupId>com.sun.jdmk</groupId>
<artifactId>jmxtools</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jmx</groupId>
<artifactId>jmxri</artifactId>
</exclusion>
</exclusions>
</dependency>
Run Code Online (Sandbox Code Playgroud) 我希望我的Java应用程序在运行Eclipse之前询问特定的参数(如名称和电子邮件).我该怎么做呢?