各种Java Web表示层技术的优缺点

我目前正在开发一个大量使用JSF和IceFaces的Web应用程序。 我们已经讨论过转移到另一个表示层,我想我会把讨论带到SO中,看看专家们的想法。 我很好奇是否有人可以权衡各种Java表示层技术的优缺点。 如果你只和一个人合作过,说出你喜欢它的原因或者讨厌它。 如果您与多个人合作过,请给出他们如何相互叠加的印象。 我们正在考虑的技术是: ICEfaces的 JSF(没有IceFaces) GWT(谷歌网络工具包) 便门 挂毯 如果我遗漏了我的清单中的任何内容,请告诉我。 谢谢!

是否有可能在Java中检查对象字段是否为空,然后将默认值添加到所有这些属性?

我需要确保没有object属性为null并且如果它为null则添加默认值。 有没有简单的方法可以做到这一点,还是我必须通过其getter和setter检查每个属性来手动完成?

扩展Selenium WebDriver WebElement?

我正在遵循Selenium建议的页面对象模式,但是如何为页面创建更专业的WebElement。 具体来说,我们的页面上有表格,我编写了一些辅助函数来获取表格的特定行,返回表格的内容等。 目前,这是我创建的具有表的页面对象的片段: public class PermissionsPage { @FindBy(id = “studyPermissionsTable”) private WebElement permissionTable; @FindBy(id = “studyPermissionAddPermission”) private WebElement addPermissionButton; … } 所以,我想要做的是将权限表变成一个更加自定义的WebElement,其中包含我之前提到的一些方法。 例如: public class TableWebElement extends WebElement { WebElement table; // a WebDriver needs to come into play here too I think public List<Map> getTableData() { // code to do this } public int […]

如何告诉Eclipse包含所有项目的标准.jar库

我意识到在eclipse中你可以指定某些.jar库来为各个项目添加,但我想知道是否有可能使eclipse自动将标准.jar添加到所有项目的类路径中。 我正在使用eclipse进行java课程,并希望能够自动将课程的stdlib用于所有项目。

Java中的implements和extends关键字有什么区别

Java中的以下关键字有什么区别: implements , extends ?

同步局部变量

我注意到ConcurrentHashMap的compute和computeIfAbsent方法中有一个奇怪的构造: Node r = new ReservationNode(); synchronized (r) { //… } 考虑到JIT最有可能将其视为无操作,本地对象同步的重点是什么?

捕获Java错误

我听说抓java.lang.Error被认为是不好的做法。 我目前正在加载一个不保证在PATH上的.dll,并希望切换到用户配置的位置,如果不是。 try { System.loadLibrary(“HelloWorld”); } catch(UnsatisfiedLinkError ule){ System.load(“C:/libraries/HelloWorld.dll”); } 有更好的方法吗? 或者在这里捕获UnsatisfiedLinkError可以接受?

你如何使用Java库?

我正在尝试使用开源java库来可视化图形中的节点和边缘,但我完全迷失了。 我在一个文件夹中有一堆jar文件。 点击一些jar文件可以弹出java swing窗口并显示图形。 单击其他jar文件不会执行任何操作。 如果我想出来的话,我会将jar文件与其他文件一起粘贴在那里,还是仍然不起作用? 如果我弄清楚如何使用这些文件,这是否意味着如果我将我的java项目转移到另一台计算机,我必须包含它们? 我该怎么做呢?

如何忽略javamail中的服务器证书错误

当我使用imaps连接到我的imap服务器时,它很糟糕。 你能告诉我如何忽略javamail中的服务器证书错误 Exception in thread “main” javax.mail.MessagingException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target; nested exception is: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:665) at javax.mail.Service.connect(Service.java:295) at javax.mail.Service.connect(Service.java:176) at App20110204.main(App20110204.java:31) Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path […]

在没有临时文件的情况下将音频流转换为Java中的WAV字节数组

给定一个调用的InputStream in其中包含压缩格式的音频数据(如MP3或OGG),我希望创建一个包含输入数据的WAV转换的byte数组。 不幸的是,如果您尝试这样做,JavaSound会向您发出以下错误: java.io.IOException: stream length not specified 我设法通过将wav写入临时文件然后将其读回来使其工作,如下所示: AudioInputStream source = AudioSystem.getAudioInputStream(new BufferedInputStream(in, 1024)); AudioInputStream pcm = AudioSystem.getAudioInputStream(AudioFormat.Encoding.PCM_SIGNED, source); AudioInputStream ulaw = AudioSystem.getAudioInputStream(AudioFormat.Encoding.ULAW, pcm); File tempFile = File.createTempFile(“wav”, “tmp”); AudioSystem.write(ulaw, AudioFileFormat.Type.WAVE, tempFile); // The fileToByteArray() method reads the file // into a byte array; omitted for brevity byte[] bytes = fileToByteArray(tempFile); tempFile.delete(); return bytes; […]