在JSTL标记中检索cookie和数组值

在检索我需要使用的cookie时: ${currentCookie.value.name} 但是,在使用自定义数组时,为什么我们需要跳过.value函数? ${myList.name} Cookie包含.getValue函数(),它以字符串格式返回cookie的内容,那么使用currentCookie.value.name如何工作?

如何(便宜地)计算n个可能元素的所有可能的长度-r组合

什么是计算n个可能元素的所有可能长度-r组合的最快方法,而不采用powershell技术或任何需要STL的东西? 在我的数据结构类中为我的最终项目开发Apriori算法时,我开发了一个使用位移和递归的有趣解决方案,我将在下面的答案中分享对任何感兴趣的人。 但是,这是实现这一目标的最快方法(不使用任何通用库)吗? 我出于好奇而不是其他任何问题,因为我目前的算法对我的目的来说效果很好。

如何确保不会发生jvm和编译器优化

我有这个代码测试Calendar.getInstance().getTimeInMillis() vs System.currentTimeMilli() : long before = getTimeInMilli(); for (int i = 0; i < TIMES_TO_ITERATE; i++) { long before1 = getTimeInMilli(); doSomeReallyHardWork(); long after1 = getTimeInMilli(); } long after = getTimeInMilli(); System.out.println(getClass().getSimpleName() + " total is " + (after – before)); 我想确保没有JVM或编译器优化发生,因此测试将是有效的,并且实际上会显示差异。 怎么样? 编辑 :我改变了代码示例,以便更清楚。 我在这里检查的是在不同的实现中调用getTimeInMilli()需要多长时间 – Calendar vs System。

如何更新页面中显示的值而不刷新

我在JSF页面中有这3个字段 而且我还有一个具有以下属性的支持bean: @ManagedBean @RequestScoped public class NewOfferSupportController { private String val1; private String val2; private String result; //Get set methods… } 我希望outputText元素在字段val1和val2中插入某些值时自动更改其值,而不刷新页面。 结果变量应该以这种方式计算(它计算一个百分比):( val1 * val2)/ 100 你能帮我解决一些疑惑吗?: 我知道,为了做到这一点,我需要像javascript或AJAX这样的东西。您认为应该是最好的方法吗? 我很想知道如何用AJAX做到这一点,你能给我一些提示吗? 由于我需要字段为String类型,我的validation将如何实现? 我可以避免在字段中输入不是数字的字符(如果按下的键不是数字,在输入字段中根本不显示)?

在Java 7+中,在EDT之外使用Swing repaint()方法是否仍然安全?

我知道,即使使用Swing的线程模型,从任何线程调用repaint()和其他一些选定的方法也是安全的,但是我最近在评论中告诉我,事实并非如此。 谷歌发现很多旧的讨论说它是安全的,但最近没什么。 所有以前说它安全的官方参考文献似乎已经消失了,我在各个论坛上发现了一些人讨论它是如何不再安全的。 我找不到任何正式的东西来确认它是否存在 – 而且我真的希望看到一些解释改变逻辑的东西,如果它已被改变的话。 考虑到破坏现有应用程序的风险有多严重,这似乎是一个非常奇怪的function。 我真的在寻找一个官方参考(即Javadoc,oracle教程或源代码链接)的链接,说明这些方法是否从任何线程调用都是安全的。 这里提到这个问题: 在EDT之外安全使用Component.repaint()? 从一个现已消失的Sun页面中引用一句话: 从任何线程调用以下JComponent方法都是安全的:repaint(),revalidate()和invalidate()。 repaint()和revalidate()方法将事件派发线程的请求分别调用paint()和validate()。 这符合我的理解,但我现在找不到那个页面或任何类似的页面,我看到几个人的未经证实的谣言说它不再安全。 但另一方面,我找不到任何明确的说这个function已经改变。 改变笔记 可能有助于解决这个问题的是Oracle关于Swing线程处理变化的官方声明。 我找到了“Java 7中的更改”页面,但根本没有提到它,这些页面都没有提到任何方式的线程或EDT: http://docs.oracle.com/javase/7/docs/technotes/guides/swing/enhancements-7.html http://docs.oracle.com/javase/7/docs/technotes/guides/awt/enhancements-7.html

如何制作BufferedReader的副本?

我正在使用BufferedReader构造函数来创建现有BufferedReader的新副本。 BufferedReader buffReader = new BufferedReader(originalBuffReader); 新的buffReader工作正常,但是当我执行originalBuffReader.readLine()它给了我null 。 有没有其他方法我可以创建一个新的bufferReader而不影响我原来的BufferedReader 。 仅供参考:我将bufferReader作为我方法的输入; 而我无权访问该来源。

Java中的short和char类型

根据Java标准,short和char类型都使用2个字节,因此当我编写类似的东西时 char ch = ‘c’; short s = ch; 有一个错误说“可能会损失精度”。 我在这里失踪了什么。

使用JDBC在SQL中的日期之间进行搜索?

我目前正在编写一个Java Swing应用程序,它从MYOB数据库文件中读取数据并在表格中显示某些信息。 我已经能够成功生成所需的SQL语句,但是我无法添加日期之间的搜索function(我们的数据库非常大,所以我们试图限制结果)。 我的一个查询的示例如下(用Java编写): rs = stmt.executeQuery(“SELECT sales.InvoiceNumber, sales.ShipToAddress, sales.Date ” + “FROM sales, customers ” + “WHERE sales.CardRecordID = customers.CardRecordID ” + “AND customers.Name = ‘Cash Sales’ ” + “ORDER BY sales.ShipToAddress ASC, sales.Date DESC” + “;”); 我有两个日期(它们实际上是Java中的字符串,但格式为dd / MM / yyyy)。 我尝试在我的WHERE使用另一个AND子句与BETWEEN语句,但我从JDBC [MYOB ODBC]Error getting the literal value of right operand.得到以下[MYOB ODBC]Error getting […]

在Java中,是否有合理的理由从类构造函数中调用非final方法?

我最近花了几分钟调试生产代码中的一个问题,最终结果是由一个在其构造函数中调用抽象方法的类引起的,并且该方法的子类实现试图使用一个尚未生成的子类字段已初始化(下面列出了一个说明这一点的例子) 在研究这个问题时,我偶然发现了这个问题 ,并对Jon Skeet的回答很感兴趣: 一般来说,在构造函数中调用非final方法是一个坏主意,正是因为这个原因 – 子类构造函数体还没有被执行,所以你有效地在一个尚未完全调用的环境中调用一个方法初始化。 这让我感到疑惑,是否有合理的理由从构造函数中调用非final或抽象方法? 或者它几乎总是设计糟糕的迹象? 例 public class SSCCE { static abstract class A { public A() { method(); // Not good; field arr in B will be null at this point! } abstract void method(); } static class B extends A { final String[] arr = new String[] { “foo”, […]

如何在Java中将hex字符串转换为float?

如何在Java中将hex字符串转换为单精度浮点? 例如,如何实现: float f = HexStringToFloat(“BF800000”); // f现在应该包含-1.0 我问这个因为我试过了: float f = (float)(-1.0); String s = String.format(“%08x”, Float.floatToRawIntBits(f)); f = Float.intBitsToFloat(Integer.valueOf(s,16).intValue()); 但我得到以下exception: java.lang.NumberFormatException:对于输入字符串:“bf800000”