小编Phi*_*ann的帖子

捕获Checked Exceptions后重新抛出RuntimeExceptions

在Java中,观察到有一种RuntimeException在处理之后重新抛出一个公约Checked Exception.

这种方式有好的和坏的后果.当编译器强制要通过a处理某些东西时Checked Exception,开发人员可以通过捕获它并将其重新抛出来摆脱它RuntimeException.

有人可以解释这种情况是否可以被认为是一种好的做法?如果是这样,这种方法会不会出错,还是会使代码库不稳定?

java exception-handling exception

13
推荐指数
1
解决办法
5698
查看次数

PrimeFaces日历接受无效日期作为输入

我遇到的问题是PrimesFaces 3.4.1日历.当使用通过按钮或输入字段焦点激活的弹出日期选择器时,您只能选择工作正常,快乐日子的有效日期!

当您手动将日期添加到输入字段时,如果您添加一个无效的日期,PrimeFaces日历组件会将其转换为有效日期然后发送它,这意味着后端验证是不行的.以下一些有趣的翻译:

  • 30/02/2012成为2/6/2014
  • 322/05/2012成为5/10/2038
  • 2012年1月14日成为2012年4月1日

要重现这种疯狂,请看看PrimeFaces日历展示.

我已经看到使用该readOnlyInput='true'属性的解决方案,但这似乎只是防止在字段中输入字母而不是数字或斜杠.以下是我实施的日历的一个实例:

<p:calendar id="fldDateOfBirth"
            value="#{pc_CreateUser.user.dateOfBirth}"
            binding="#{pc_CreateUser.dobComp}"
            navigator="true"
            pattern="dd/MM/yyyy"
            maxlength="10"
            yearRange="-100"
            validator="#{pc_CreateUser.validateDOB}"
            title="#{msg.user_date_format_default_tip}"
            converterMessage="#{msg.user_error_dob_invalid}"
            readOnlyInput="true"
            showOn="button" />
Run Code Online (Sandbox Code Playgroud)

解决方案明智我对任何建议持开放态度:

  1. 这是PrimeFaces中的常见问题吗?有没有我可以用来解决它的技巧?
  2. 我可以使用JavaScript在发送之前验证日期还是完全阻止所有用户输入?
  3. 还有什么别的我没有想到的!

在此先感谢,这已经引起了我好几周的问题!

java validation jsf calendar primefaces

8
推荐指数
1
解决办法
2万
查看次数

Eclipse和IvyDE警告:Classpath依赖性验证器消息

我在Eclipse Kepler中创建了一个新的Dynamic Web Project,因为这是我第一次使用IvyDE,我将一些依赖项用于测试它.这是我的ivy.xml:

<ivy-module version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
    <info
        organisation="net.myorg"
        module="mymodule"
        status="integration">
    </info>
    <dependencies>
       <dependency org="org.hibernate" name="hibernate-entitymanager" rev="4.2.3.Final"></dependency>
       <dependency name="log4j" rev="1.2.17" org="log4j"></dependency>
    </dependencies>
</ivy-module>
Run Code Online (Sandbox Code Playgroud)

已解决的依赖项,我可以在项目库中看到它们.

但在此之后,我的项目开始发出警告:

Description Resource    Path    Location    Type
Classpath entry org.apache.ivyde.eclipse.cpcontainer.IVYDE_CONTAINER/?project=myproject&ivyXmlPath=ivy.xml&confs=*&acceptedTypes=jar%2Cbundle%2Cejb%2Cmaven-plugin&alphaOrder=false&resolveInWorkspace=true&retrievedClasspath=true&retrievedClasspathPattern=lib%2F%5Btype%5Ds%2F%5Bartifact%5D-%5Brevision%5D.%5Bext%5D&retrievedClasspathSync=true&retrievedClasspathTypes=* will not be exported or published. Runtime ClassNotFoundExceptions may result.      myproject       P/myproject Classpath Dependency Validator Message
Run Code Online (Sandbox Code Playgroud)

因此,如果我理解正确,Eclipse会警告我类路径中的IvyDE条目与构建项目中的资源不对应.我想这是预期的行为,如果是这样,有没有办法从项目中删除此警告,而不禁用每个Classpath Dependency Validator Message

java eclipse ivyde

8
推荐指数
1
解决办法
9784
查看次数

是否存在PowerScript"CHOOSE CASE"的Java等价物?

我发现PowerScript的CHOOSE CASE语句非常有用,因为它使得代码比很多ifs和else ifs 更清晰.

这里有一个如何工作的例子,从上面的链接:

CHOOSE CASE weight
   CASE IS < 16
        Postage=Weight*0.30
        Method="USPS"
   CASE 16 to 48
        Postage=4.50
        Method="UPS"
   CASE ELSE
        Postage=25.00
        Method="FedEx"
END CHOOSE
Run Code Online (Sandbox Code Playgroud)

a CASE 5 to 11是一样的CASE 5, 6, 7, 8, 9, 10, 11

请注意,CHOOSE CASE它不等同于javaswitch

java

3
推荐指数
1
解决办法
143
查看次数