如何在Struts 2中将动作类的QRCode图像发送和显示到JSP

我正在提交一个带有字符串的JSP表单,并且在提交时我正在调用Struts 2操作。 在该操作中,我使用QRGen库创建QRCode图像,如下所示 File QRImg=QRCode.from(“submitted String”).to(ImageType.PNG).withSize(100, 100).file(); 我的JSP表单: Enter Your Name 我的操作映射struts.xml : displayQR.jsp 我的动作类: import java.io.File; import net.glxn.qrgen.QRCode; import net.glxn.qrgen.image.ImageType; import com.opensymphony.xwork2.ActionSupport; public class CreateQRAction extends ActionSupport{ private File QRImg; Private String userName; public String execute() { QRImg=QRCode.from(userName).to(ImageType.PNG).withSize(100, 100).file(); return SUCCESS; } public String getUserName() { return userName; } public void setUserName(String userName) { […]

字段读取和volatile的同步之间的区别

在一篇包含一些并发技巧的文章中 ,一个示例针对以下几行进行了优化: double getBalance() { Account acct = verify(name, password); synchronized(acct) { return acct.balance; } } 如果我理解正确,同步的关键是确保此线程读取的acct.balance的值是最新的,并且对acct.balance中对象的字段的任何挂起写入也写入主存储器。 这个例子让我想一想:将acct.balance(即类Account的字段余额)声明为volatile是不是更有效率? 它应该更有效,除了你对acct.balance访问的所有synchronize ,并不会锁定整个acct对象。 我错过了什么吗?

如何创建单个表达式,显示两个日期之间的时差,如年,月,日,小时,分钟,秒

我如何创建一个jasx报告JRExpression ,它可视化两个java.util.Date之间的差异,格式为yy年(s)月(s),hh小时(s),mm分(s),ss秒 java.util.Date startDate java.util.Date endDate JRExpression是一行不允许变量声明的行,但是你可以使用语法boolean ? yes:no条件语句boolean ? yes:no boolean ? yes:no ,对于你不熟悉的人想象一下System.out.println(); 所需输出的示例(如果你有一个很好的解决方案,当不存在时删除单位的描述并考虑单数/复数但如果它是一系列if语句则不是必需的): 2年,8个月,12天,2小时,53分钟,10秒 1小时1分钟 2月2日至3月4日和3月4日 – 4月6日都是“1个月,2天”,夏令时可以忽略 – 感谢@Affe 其他要求: 只能使用jasper报告依赖项 (不包括joda)。 优选的jdk 1.7或更低(如果这只是解决方案,则接受1.8) 没有必要将答案格式化为jasper报表,它可以是一个简单的System.out.println代码(我很乐意稍后编辑你的答案,也可以添加jasper报表表达式代码)。 例 ((endDate.getTime()-startDate.getTime()) / (60 * 60 * 1000)) % 24 + ” hour(s), ” + ((endDate.getTime()-startDate.getTime()) / (60 * 1000)) % 60 + ” minute(s)” 我试过了什么: […]

二进制搜索O(log n)算法在顺序列表中查找重复?

有没有人知道在序列号列表中找到重复的快于线性的算法? 我现在在Java工作,但任何语言或伪代码都没问题。 例如,给定此int []输入: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 7 | 8 | 9 输出可以是指数或值’7’。 我知道O(n)线性时间的明显遍历,但我试图通过O(log n)时间的二进制搜索来确定这是否可行。

如何从WAR中的classes目录中读取文件?

我需要从Java WAR应用程序中的类路径中读取文本文件。 我怎么能把它读作InputStream。 文件位于/ WEB-INF / classes /文件夹中,但是当我使用以下代码时,它只返回null。 InputStream input = servletContext.getClass().getClassLoader().getResourceAsStream(“my_filename.txt”);

Apache HttpClient 4和JavaScript

我使用Apache HttpClient访问网页。 我想点击链接,但链接是javaScript,我如何处理点击JavaScript链接并遵循url重定向? 示例javascript和html代码: link function send(content_id, fic, cgRate) { var params = new Hash(); params.set(‘content_id’, content_id); params.set(‘tool’, fic); params.set(‘cgRate’, cgRate); new Ajax.Updater(‘return’, ‘/mypkg/tools’, { method: ‘post’, parameters: params, evalScripts: true, onInitialize: new Effect.Appear(‘loader’, {duration: 0.0}), onComplete: new Effect.Fade(‘loader’, {duration: 1.2}) }); }

具有InterBase JDBC驱动程序的NoClassDefFoundError sun / io / ByteToCharConverter

使用InterClient 7.5.1和8.1.5,在Java 8中创建新的JDBC连接失败 java.lang.NoClassDefFoundError: sun/io/ByteToCharConverter 此类似乎由InterClient JDBC库引用或使用。 Java 7没有出现错误。有没有办法解决此错误? 此代码重现了Java 8上的问题: package com.example.so25365952; import java.sql.DriverManager; import java.sql.SQLException; import java.util.logging.Level; import java.util.logging.Logger; public class Main { interbase.interclient.Connection conn; public static void main(String[] args) { try { Class.forName(“interbase.interclient.Driver”); DriverManager.getConnection(“jdbc:interbase://localhost/data/mydb.gdb”, “sysdba”, “password123”); } catch (ClassNotFoundException | SQLException ex) { Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex); } } } 输出: 线程“main”java.lang.NoClassDefFoundError中的exception:sun / […]

JavaFx事件参数类型不匹配

我第一次使用JavaFx,遇到了事件问题。 我使用SceneBuilder构建了一个表单,并在.fxml和controller上添加了一个事件,但它始终返回: Exception in thread “JavaFX Application Thread” java.lang.IllegalArgumentException: argument type mismatch FirstScene.fxml: FirstSceneController.java: public class FirstSceneController implements Initializable { @FXML private Button firstScene_newbutton; @FXML private TableView firstScene_tableView; /** * Initializes the controller class. */ @Override public void initialize(URL url, ResourceBundle rb) { } @FXML private void newButtonClick(ActionEvent event) { System.out.println(“You clicked me!”); } } […]

为什么javac认为通用类的generics返回调用方法不安全?

请考虑以下代码: public class Main { public static class NormalClass { public Class method() { return Integer.class; } } public static class GenericClass { public Class method() { return Integer.class; } } public static void main(String… args) { NormalClass safeInstance = new NormalClass(); Class safeValue = safeInstance.method(); GenericClass unsafeInstance = new GenericClass(); Class unsafeValue = unsafeInstance.method(); […]

如何设置rmiregistry使用的类路径?

我正在尝试制作Java RMI客户端/服务器应用程序。 我在启动应用程序的服务器端时遇到问题,因为当我尝试启动应用程序的服务器端时,它在调用Registry.bind()方法期间一直运行到ClassNotFoundException 。 我从这里的简单教程开始: http : //docs.oracle.com/javase/1.5.0/docs/guide/rmi/hello/hello-world.html 。 按照这些说明操作后,它最初抛出一个ClassNotFoundException,抱怨它找不到“example.hello.Hello”。 我能够通过从教程中的destDir目录启动rmiregistry来解决这个问题,因为rmiregistry显然使用它的初始起始目录作为其类路径的一部分。 之后我开始使用我的其他测试应用程序,直到我开始在服务器类中使用第三方jar文件之前我一直很好。 现在,如果我的服务器类引用任何jar文件中的任何内容,则Registry.bind()会抛出ClassNotFoundException,因为rmiregistry应用程序不知道这些jar文件。 据我所知,rmiregistry不接受任何类型的路径启动arg,所以我想知道如何告诉它我想要它承认什么类路径。 根据这里的教程: http : //docs.oracle.com/javase/tutorial/rmi/running.html ,“你必须确保你将运行rmiregistry的shell或窗口没有设置CLASSPATH环境变量或有一个CLASSPATH环境变量,它不包含你想要下载到远程对象客户端的任何类的路径。“ 这听起来与我需要的相反……或者我读错了吗? 有没有人有任何成功启动使用第三方jar的RMI客户端/服务器(在我的情况下,commons-io,commons-logging和rmiio)? 这是在Windows上,顺便说一下。 更新我找到了解决方法。 请参阅下面的答案。