如何在struts2中使用@Valid注释触发validation?

我无法在hibernate,struts2 webapp中使@javax.validation.Valid注释工作。 这是我的简单实体与约束: import org.hibernate.validator.constraints.Length; import org.hibernate.validator.constraints.NotEmpty; @Entity @Table(name = “user”) public class User implements Serializable { @Id @GeneratedValue @Column(name = “user_id”) private Long id; @NotEmpty @Length(max = 50, min = 3, message = “Name should be not less 3 and not more 50”) @Column(name = “name”, nullable = false) private String name; @Length(min = […]

Tomcat请求记录 – 如何?

环境:雄猫7。 想记录http请求及其标题。 实际上,只要我可以记录调用者的IP地址,他请求的资源(URL)和请求类型(GET,POST等),我就可以不使用标题 这似乎是一个微不足道的问题,但实际上并非如此。 标准方法是使用AccessLogValve ,但据我所知,其中一个实际上不是请求日志记录,它是请求/响应日志记录,这意味着它不会在响应周期结束之前记录任何内容。 它只会记录响应已成功传递到http客户端的请求。 如果出现问题之前,AccessLogValve将不会记录请求。 问题1:这是否正确理解? 问题2:还有其他选择吗? 更新1: 我已经使用一个基于URL参数阻塞x秒的虚拟servlet对Tomcat7进行了测试。 我的发现确实是AccessLogValve记录了该请求……虽然正如预期的那样,直到响应结束时才会发生这种情况,即在x秒之后。 无论客户端在请求完成之前是否已中止,并且无论servlet在处理期间是否抛出exception,都会有一个日志条目。 因此问题1的答案是:“否”。 结论 AcccesLogValve最终将生成一个日志条目。 至少我还没有能够产生这种情况并非如此。

java将列表字符串写入csv文件

我有一些像下面这样的数组字符串(注意每个播放器后面有空格显示不同的行…), [“user1″,”track1″,”player1”, “user1″,”track2″,”player2”, “user1″,”track3″,”player3”, …] 我想根据行数(这里是空格)将这个数组分成两部分(几乎相等)。 所以,例如,如果这个数组中有40个空格,我需要将从第一行到第二行(第20行)的行存储在一个文件中(让我们称之为文件A)并将其余部分放在文件B中。我可以划分arraylist,但我无法在CSV文件中以正确的方式编写它。 这是我的代码: public static void main(String[] args) throws java.lang.Exception { BufferedReader userlines = new BufferedReader(new FileReader(“/…./usertrackplayer.csv”)); FileWriter output = new FileWriter(new File(“/…/output.csv”)); String uLine = null; ArrayList list = new ArrayList(); List arrayList = new ArrayList(); String currentUserId = null; while ((uLine = userlines.readLine()) != null) { String[] userData […]

是否可以使用yGuard通过Obfuscation管理日志?

我混淆了一个java Web应用程序,我遇到了一些麻烦,如下所示: 我有很多未解决的外部类,即使我已经通过这种方式在ant build xml中包含了外部jar: </externalclasses 如何管理日志以了解任何内容? 我还可以混淆jsp文件吗?

复制和修改数组元素

这是原始提示: 编写一个循环,将newScores设置为左移一次的oldScores,将元素0复制到结尾。 例如:如果oldScores = {10,20,30,40},则newScores = {20,30,40,10}。 注意:这些活动可能会测试具有不同测试值的代码。 此活动将执行两个测试,第一个使用4个元素的数组(newScores = {10,20,30,40}),第二个使用1个元素的数组(newScores = {199})。 请参见如何使用zyBooks。 另请注意:如果提交的代码尝试访问无效的数组元素,例如4元素数组的newScores [9],则测试可能会生成奇怪的结果。 或者测试可能会崩溃并报告“程序结束从未到达”,在这种情况下,系统不会打印导致报告消息的测试用例。 这是我的代码: public class StudentScores { public static void main (String [] args) { final int SCORES_SIZE = 4; int[] oldScores = new int[SCORES_SIZE]; int[] newScores = new int[SCORES_SIZE]; int i = 0; oldScores[0] = 10; oldScores[1] = 20; […]

如何访问android中的特定内部存储目录?

我正在尝试学习android编程。 作为一个开始,我试图了解内部文件系统并访问它们。 任何帮助都非常感谢。 以下是我的挑战: 如何通过android模拟器/ Android设备监视器创建“TEST”文件夹? 我需要创建存在警报,下载,DCIM文件夹的文件夹。 创建“TEST”文件夹的绝对目录路径是什么? 是否可以使用以下代码访问TEST文件夹: List list = Environment.getDataDirectory()+”/TEST”.listFiles(); 清单中是否有任何权限可以读/写内部存储? PS:我使用Android Studio。

在持久化Hibernate之前自动设置bean值(列)?

在Hibernate持久化实体之前,是否有一种优雅的方法来设置bean值(列)? 基本上我有一个名为“modification_date”的字段。 它出现在一堆实体上。 每当更新/修改其中一个实体时,我基本上都喜欢自动设置该字段。 我可以在服务层编写代码,每次手动保存/更新对象时设置日期… 我也有一个Dao图层。 每个Dao都从包含save()方法的支持类扩展而来。 我可以使用reflection并在此方法中设置值。 我可以检查该类是否有一个名为“modicationDate”的字段,如果是,则将其设置为新的Date()。 有比这更好的方法吗? 或者使用我的genericssave()方法是最好的方法? 这是我想要强大的东西,而不必再担心它。 我会很高兴知道通过简单地制作一个“modificationDate”属性,从这一点开始我将自动处理这个问题。 使用save()方法似乎是最好的地方,但如果有更好的方法,我想知道它。

如何提高使用维基百科数据时的性能和巨大的数据。 的网页?

我应该使用维基百科的文章链接数据转储从组织的网站中提取代表性术语。 要做到这一点,我 – 已抓取并下载的组织的网页。 (〜11万) 创建了维基百科ID和术语/标题的字典。 (约4,000万条记录) 现在,我应该使用字典处理每个网页,以识别术语并跟踪他们的术语ID和频率。 为了使字典适合内存,我将字典拆分为较小的文件。 根据我对小型数据集的实验,上述处理时间约为75天。 这仅适用于1个组织。 我必须为40多个人做同样的事情。 实施 – HashMap用于在内存中存储字典。 使用Boyer-Moore搜索实现循环遍历每个地图条目以在网页中搜索术语。 对每个网页重复上述操作,并将结果存储在HashMap中。 我已经尝试优化代码并调整JVM以获得更好的性能。 有人可以建议更有效地实施上述方法,将处理时间缩短到几天。 Hadoop是一个可以考虑的选择吗?

找到窦function的零点

我想在java中实现一个函数,找到正弦函数的零点。 我知道怎么做但我真的不明白该问题的以下定义: 实现一个函数,在a和b之间的间隔中搜索正弦函数中的空点。 搜索间隔[下限,上限]应减半,直到下限和上限彼此小于0.0001。 为什么间隔减半? 有任何想法吗?

预订打印二进制树与缩进

如何为每个后续级别预先打印带有缩进(3个空格)的二叉树。 此时,我通过使用辅助方法递归打印出树,但我不知道如何编写缩进编码。 这是我到目前为止: public void print() { printPreorder(root); System.out.println(); } private void printPreorder(BinaryTreenode node) { System.out.println(node.getData() + ” “); if (node.getLeft() != null) { printPreorder(node.getRight()); } if (node.getRight() != null) { printPreorder(node.getRight()); } } 我的直接想法是放入一个计数器,并在每次递归调用该方法时增加它,然后为每个增量缩进三个空格,但我不确定这是执行此操作的最佳方法。