我试图找到工作日使用DateFormatSymbols,这是一个简短的程序
String[] shortWeekdays = new DateFormatSymbols().getShortWeekdays();
System.out.println(shortWeekdays.length);
for (int i = 0; i < shortWeekdays.length; i++) {
String shortWeekday = shortWeekdays[i];
System.out.println("shortWeekday = " + shortWeekday);
}
Run Code Online (Sandbox Code Playgroud)
而它正在给我提供输出
- shortWeekday =
- shortWeekday =太阳
- shortWeekday =星期一
- shortWeekday =星期二
- shortWeekday =周三
- shortWeekday =星期四
- shortWeekday =周五
- shortWeekday =周六
我不确定为什么它的总长度为8,而它应该给它为7
我正在研究hibernate映射,其他一切工作正常,除了我在hibernate试图将我的对象持久保存到系统时得到的PropertyAccessException.下面是堆栈跟踪
org.hibernate.PropertyAccessException: IllegalArgumentException occurred calling getter of com.raisonne.tr.model.destination.Destination.uuid
org.hibernate.property.BasicPropertyAccessor$BasicGetter.get(BasicPropertyAccessor.java:195)
org.hibernate.tuple.entity.AbstractEntityTuplizer.getIdentifier(AbstractEntityTuplizer.java:199)
org.hibernate.persister.entity.AbstractEntityPersister.getIdentifier(AbstractEntityPersister.java:3605)
org.hibernate.persister.entity.AbstractEntityPersister.isTransient(AbstractEntityPersister.java:3321)
org.hibernate.engine.ForeignKeys.isTransient(ForeignKeys.java:204)
org.hibernate.engine.ForeignKeys$Nullifier.isNullifiable(ForeignKeys.java:160)
org.hibernate.engine.ForeignKeys$Nullifier.nullifyTransientReferences(ForeignKeys.java:92)
org.hibernate.engine.ForeignKeys$Nullifier.nullifyTransientReferences(ForeignKeys.java:70)
org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:311)
org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:204)
org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:144)
org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210)
org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195)
org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:117)
org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:535)
org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:527)
org.hibernate.engine.CascadingAction$5.cascade(CascadingAction.java:241)
org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:292)
org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:240)
org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:193)
org.hibernate.engine.Cascade.cascadeCollectionElements(Cascade.java:320)
org.hibernate.engine.Cascade.cascadeCollection(Cascade.java:266)
org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:243)
org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:193)
org.hibernate.engine.Cascade.cascade(Cascade.java:154)
org.hibernate.event.def.AbstractSaveEventListener.cascadeAfterSave(AbstractSaveEventListener.java:479)
org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:357)
org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:204)
org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:144)
org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210)
org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195)
org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:117)
org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:535)
org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:527)
org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:523)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:342)
$Proxy17.saveOrUpdate(Unknown Source)
com.raisonne.tr.dao.impl.GenericDAOImpl.makePersistance(GenericDAOImpl.java:170)
com.raisonne.tr.service.impex.impl.DestinationImportServiceImpl.startDestinationImport(DestinationImportServiceImpl.java:130)
com.raisonne.tr.backoffice.actions.impex.DestinationImportAction.destinationImport(DestinationImportAction.java:118)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:452)
com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:291)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:254)
com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263)
org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:133)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207) …Run Code Online (Sandbox Code Playgroud) 我正在开发一个web应用程序,我有一个需要在运行时为我的impex进程生成日志文件.这是用例我正在验证XML文件并且验证错误由自定义错误处理程序处理.这个错误hanlde将是传递给底层验证器(Jaxb 2.x验证器),因此我必须在创建此错误hanlder的实例时创建日志文件.我们使用log4j作为日志API
这是在运行时创建日志文件的代码
XMLErrorHandler<Object> errorHandler=new XMLErrorHandler<Object>(logFileLocation);
logFileName=errorHandler.getLogFileName();
validator.setErrorHandler(errorHandler);
validator.validate(source);
Run Code Online (Sandbox Code Playgroud)
我在XMLErrorHandler构造函数中创建日志文件,因为这是我在这里控制的唯一一点是日志文件创建的代码
FileAppender appender;
try {
appender = new FileAppender(layout, sb.toString(), false);
log.addAppender(appender);
log.setAdditivity(false);
log.setLevel(Level.WARN);
} catch (IOException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
一切正常,文件正确创建,并由记录器写入相应的地方.但是,如果我重新启动我的服务器,实际问题就会启动,并且记录器开始将日志内容不仅附加到其当前日志文件中,而且还附加在服务器运行时为此过程创建的所有文件.以下是详细信息,假设我已经在每个日志文件中有3行的位置有3个日志(A,B,C)文件,而C是在此过程中创建的最新文件.所以,当我重新启动我的服务器时(通过重新调用我的意思是我从控制台停止了tomcat)它有些如何将数据附加到previos所有日志文件中这个fashin C仍有3行B现在有6行A现在有9行
似乎我创建的appender仍然是开放的或有参考,不确定究竟发生了什么.这方面的任何帮助都会有所帮助.
虽然我知道Generics和Collections的一些工作知识,但也可以说有一些使用Collection API的经验.
但是当涉及到一些关于泛型的好知识时,我必须说我总是依靠谷歌找到我的答案.
我正在寻找一些参考资料,以获得有关泛型和收藏的一些深入的想法,任何在线参考资料或书籍建议是最受欢迎的.
我不确定这个问题是多么有建设性,所以如果这个问题在几分钟内完成,我就没事了
我正在尝试下面的代码
String s1 = "ß.cfg";
System.out.println (s.toUpperCase());
Run Code Online (Sandbox Code Playgroud)
我得到的输出是SS.CFG因为Unicode没有定义ß的大写版本,而我希望输出为ß.CFG.
我有什么方法可以实现这一点,提前谢谢
我正在验证一个表单,我需要显示某些单选按钮,用户需要根据一些规则选择它们,可以创建多少个单选按钮是动态的,所以我不能在服务器端进行验证不能写一个预定义的java脚本代码.
每个无线电按钮将在团体被划分说required,比进一步向下它们可以分组等center,left,right等等,因此,从各组用户需要选择一个值,所以结构出来这样
-Main Group (if block needs to validate based on this e.g if key=required should validate)
|
Sub-group (say left, right etc)
|
number of radio buttons based on the sub-group
Run Code Online (Sandbox Code Playgroud)
因此,主组密钥可用于决定是否应该对此进行验证,并且基于子组密钥,我可以决定所有值将在那里并且需要验证
我打算在页面渲染时创建一个JSON对象
{"required": [
{"center": "id1,id2,id3"},
{"left": "id1,id2,id3"}
]
"optional": [
{"center": "id1,id2,id3"},
{"left": "id1,id2,id3"}
]
};
Run Code Online (Sandbox Code Playgroud)
我不确定我认为的结构是否正确以及如何在java脚本中创建它?就像我有一个外部循环的键,而不是一个循环的子组,最后是子组中的按钮,
for(main group key){
for(subgroup key){
for(list of radio button under subgroup key)
}
}
Run Code Online (Sandbox Code Playgroud)
但不知道如何创建一个正确的结构,以便我可以稍后用jquery解析它并使用它进行验证.
任何帮助都将非常感激.
我知道这似乎是一个奇怪的要求,但当客户想要它时意味着我们别无选择.我正在开发一个Web应用程序(电子商务),需要注册一个新客户,直到现在一切都运行良好.但是有以下情况需要
由于这些用例不适用于某些类别,而是适用于整个Web应用程序,因此我不确定如何才能实现这一目标.我想到的选择很少
HandlerInterceptor在执行实际请求之前检查客户角色的方法.但不确定我是否正在考虑正确的方向,以及我们应该如何强制执行只读访问此类客户.因为我们必须阻止这样的客户
当我在3年前探索和使用HttpUnit时,我喜欢它的功能.虽然在3年之后没有跟踪它,但当我向我的同事提出基于它的解决方案时,他告诉我它已被弃用了?apache状态告诉它处于活动状态.如果这是真的,我无法找到.如果这是真的,我会感到震惊.在错误列表中找到并且在过去1年没有找到任何受让人.我应该从这个推断中得出结论,它已被弃用了吗?
我正在寻找替代BeanUtils.getProperty().only原因我想要替代是避免最终用户有一个更多的依赖.
我正在研究自定义约束,这是我的一段代码
final Object firstObj = BeanUtils.getProperty(value, this.firstFieldName);
final Object secondObj = BeanUtils.getProperty(value, this.secondFieldName);
Run Code Online (Sandbox Code Playgroud)
因为我需要从对象中获取这两个属性.没有任何第三方系统或者我需要复制这段代码BeanUtilsBean吗?
我正在尝试使用Spring Security处理基于Ajax的登录系统并且它工作正常,直到我得到了我需要配置的另一个需求authentication-success-handler,因此一旦用户通过Spring安全性进行身份验证,我就可以进行一些后期处理.
之前我没有<form-login/>用于显示登录页面.我的登录部分是一个下拉列表,它是标题部分的一部分,对于整个应用程序是常见的.
这就是我尝试配置Spring安全性的方法
<http pattern="/customer/**" auto-config="true" use-expressions="true" authentication-manager-ref="customerAuthenticationManager">
<!--<http pattern="/customer/**" auto-config="true" use-expressions="true">-->
<intercept-url pattern="/customer/logon.html*" access="permitAll" />
<intercept-url pattern="/customer/denied.html" access="permitAll"/>
<intercept-url pattern="/customer" access="hasRole('AUTH_CUSTOMER')" />
<intercept-url pattern="/customer/" access="hasRole('AUTH_CUSTOMER')" />
<intercept-url pattern="/customer/*.html" access="hasRole('AUTH_CUSTOMER')" />
<intercept-url pattern="/customer/*/*.html" access="hasRole('AUTH_CUSTOMER')" />
<form-login login-processing-url="/customer/logon.html" login-page="/shop/home.html"
authentication-success-handler-ref="webshopAuthenticationSuccessHandler" />
<logout invalidate-session="true"
logout-success-url="/customer/home.html"
logout-url="/customer/j_spring_security_logout" />
<access-denied-handler error-page="/customer/denied.html"/>
</http>
Run Code Online (Sandbox Code Playgroud)
使用这些配置,当我点击具有正确凭据的登录按钮时,我收到HTTP 302错误
http://localhost:8080/shop/customer/logon.html 302 found
Run Code Online (Sandbox Code Playgroud)
不确定我究竟做错了什么?
<form id="login" method="post" accept-charset="UTF-8">
<input id="userName" type="text" name="userName" size="30" />
<button type="submit" class="btn">Login</button>
</form>
Run Code Online (Sandbox Code Playgroud)
var data = $(this).serializeObject();
$.ajax({
'type': …Run Code Online (Sandbox Code Playgroud) java ×6
spring ×2
spring-mvc ×2
collections ×1
generics ×1
hibernate ×1
http-unit ×1
java-ee ×1
javascript ×1
jquery ×1
json ×1
log4j ×1
logging ×1
tomcat6 ×1