我有一个@ViewScopedbean,它有一个带@PreDestroy注释的方法,可以确保关闭一些远程连接.但是,当用户导航时不调用该方法.
有什么可以做错的吗?我是否必须在任何地方注册任何内容才能使其正常工作?
这是一个简单的公共方法(void),不会抛出任何异常.
我正在使用带有Tomcat 7.0.12的JSF 2(MyFaces).这可能是Tomcat的问题吗?
UPDATE
在@PostConstruct注释工作正常.
我有一个<h:selectBooleanCheckbox value="#{someBean.prop}">地方prop是一个类型的属性int.它真的不能马上工作吗?我是否必须实现自定义转换器才能转换Boolean为int?有没有人碰巧在库存中有转换器代码?我读到JSF 2.0中存在一些错误,可以防止转换器<h:selectBooleanCheckbox>被处理.任何人都可以证实吗?
我使用MyFaces 2,Tomahawk和Tomcat 6.
我有一个Bean,它运行一些带有数据库连接的线程.当用户导航时,我该怎么做才能确保关闭这些连接?我可以为JSF bean定义某种形式的"析构函数"吗?
我有p:wizard一些标签.在第一个选项卡中,用户选择一个值(t :selectOneRadio- 我正在使用Tomahawk).这是必需的价值.
如果用户未选择值,则不会转到下一个选项卡,但不会显示验证错误.嗯.
如果用户选择了一个值,则转到下一个选项卡,返回第一个选项卡并选择一个不同的值,它的行为就像这次没有选择任何值一样.(也没有验证错误,但无法调用第二个选项卡).
更糟糕的是:用户在第一个选项卡中选择一个值,转到第二个选项卡,尝试从那里调用一个操作......出现验证消息; 它就像在第一个选项卡中没有选择任何值一样.
这有什么解释吗?
UPDATE
PrimeFaces论坛中提出的解决方案为我工作.(将process ="@ this"添加到commandButton.)
我有一个带有渲染属性的panelGroup.如果render属性设置为false,为什么甚至会调用panelGroup中的组件值?我是否想念这里的渲染属性?
我想要做的是:我在panelGroup之前有一个selectManyCheckbox,只有当用户在selectManyCheckbox中选择了值并点击一个按钮时才能执行panelGroup中的所有内容.这不会像这样工作,因为panelGroup中的组件取决于用户必须在selectManyCheckbox中选择的值.
<h:selectManyCheckbox /> // for the user to choose
<h:commandButton /> // to render the panelGroup
<h:panelGroup rendered="#{someBean.render}">
<h:dataTable value="#{someOtherBean.loadSomething(someObject)}" var="item">
// ...
</h:dataTable>
</h:panelGroup>
Run Code Online (Sandbox Code Playgroud) 我无法使用参数进行方法调用以在JSF 2.0(MyFaces)和Tomcat 6中工作.
这是我尝试的方式:
<f:selectItems var="item" value="#{bla.someList}
itemValue="#{item.value1}"
itemLabel="#{item.value2}">
<f:param name="param1" value="0" />
</f:selectItems>
我无法定义这样的方法,对吗?那么为何不?
getSomeList(int a)
Run Code Online (Sandbox Code Playgroud)
所以这就是我的尝试:
getSomeList() {
Integer a = Integer.parseInt(FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("param1"));
return doSomething(a);
}
Run Code Online (Sandbox Code Playgroud)
这就是我得到的:
java.lang.NumberFormatException: null
java.lang.Integer.parseInt(Integer.java:417)
Run Code Online (Sandbox Code Playgroud)
如果有人帮助我,我将非常感激.谢谢!
更新:啊,它适用于#{bla.getSomeList(0)}!
我想构建一个表单,根据其他组件的状态动态更改可见的组件.
例如......有一些文本框和一些复选框,如果用户激活某个复选框,则应显示一堆其他输入元素.
我可以使用JSF 2.0 + Tomahawk执行此操作,还是必须使用另一个库来执行此操作?我怎么能这样做?没有AJAX,这将无法工作,是吗?
提前致谢!
jsf ×7
javabeans ×3
jsf-2 ×2
ajax ×1
annotations ×1
boolean ×1
checkbox ×1
converter ×1
destructor ×1
el ×1
forms ×1
int ×1
parameters ×1
primefaces ×1
tomahawk ×1
validation ×1
wizard ×1