小编tli*_*ind的帖子

JSF 2.0:在ui中重新渲染/更新单个项目:使用AJAX重复

我的页面由几个区域组成,这些区域是通过迭代使用的项目列表创建的<ui:repeat>.想象一下这个简化的例子:

<h:form id="form">    
    <ui:repeat id="repeatContainer" var="item" value="#{testBean.items}" varStatus="status">
        <h:outputText value="#{item.title}: "/>

        <!-- I want to re-render only a single one of these fields -->
        <h:outputText id="valueContainer" value="#{item.value}"/><br/>          
    </ui:repeat>
</h:form>
Run Code Online (Sandbox Code Playgroud)

现在,我想使用AJAX(例如,索引为1的元素)重新渲染(仅)此列表valueContainer中的特定元素.我已经尝试过所有这些组合而没有任何运气:

<!-- Works, but renders all items: -->
<f:ajax render=":form"/>

<!-- This is what I actually want to achieve (does not work, comp. not found): -->
<f:ajax render=":form:repeatContainer:1:valueContainer"/>

<!-- Does not work (component not found): -->
<f:ajax render=":form:repeatContainer"/>

<!-- Does not work (component …
Run Code Online (Sandbox Code Playgroud)

ajax jsf repeat jsf-2

5
推荐指数
1
解决办法
5407
查看次数

在JBoss AS7堆栈上使用ViewScope和避免LazyInitializationException的最简单方法(JSF2,CDI,JPA2,Seam?)

我正在尝试建立一个基于JBoss AS7的Web应用程序堆栈,用于满足以下要求的小规模研究原型和学生项目:

  1. 我想使用与Ajax相关的范围,例如ViewScope - 或者可能是MyFaces Orchestra中的(View)AccessScope - 用于我的托管bean,以及PrimeFaces组件.

  2. 基于JPA的持久性应该相当简单,无需处理OpenSessionInView模式等.我对JPA2的主要问题是可怕的LazyInitializationException,尤其是在AJAX调用中.我要求在谈话手动控制.

  3. 我希望尽可能少地使用依赖项,因此主要依赖于JBoss AS7附带的内容.

现在,我已经建立了一个项目,其中包含以下(主要是提供的)Maven依赖项:

  • CDI
  • 冬眠-2.0-API
  • 的jboss-EJB-api_3.1_spec
  • 的jboss-JSF的api_2.1_spec
  • JBoss的数据注解,api_1.1_spec
  • PrimeFaces 3

到目前为止看起来相当苗条.缺少的是对JSF特定范围的进一步支持,并且当在JSF页面中迭代集合时,我总是得到一个LazyInitializationException.现在,我的持久性服务类看起来像这样:

import javax.ejb.Stateful;
import javax.enterprise.context.RequestScoped;

@Stateful @RequestScoped
public class TestEntityService implements Serializable {
    @PersistenceContext(type=PersistenceContextType.EXTENDED)
    private EntityManager entityManager;

    // ... some methods working with the entityManager ...
}
Run Code Online (Sandbox Code Playgroud)

和我的ResourceFactory bean:

public class ResourceFactory {
    @Produces @PersistenceUnit
    private EntityManagerFactory entityManagerFactory;
}
Run Code Online (Sandbox Code Playgroud)

我尝试过失败与组合@Named代替@Stateful@SessionScoped代替@RequestScoped.然而,我发现添加Seam 3 Persistence,Solder&Faces模块似乎可以解决我的大多数问题,但这会为我的项目增加大量的新依赖项(例如,seam-security,prettyfaces,drools,joda-time和其他依赖项) ).

我的问题是: …

cdi seam3 jsf-2 jpa-2.0 jboss7.x

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

自动应用在单独的程序集中定义的默认样式

我有以下要求:

  1. 我的WPF应用程序包含几个模块(程序集),其中一些与UI相关.

  2. 我想创建一个包含一组通用样式的单个程序集,用于某些控件(例如自定义默认按钮样式),它应该自动应用于所有其他与UI相关的程序集,只需包含那个程序集,而不必指定显式资源键.

  3. 我不为每种控件提供样式,因此没有自定义样式的样式应该保留默认的Aero主题(包括内容模板等).

  4. 希望写我自己的,扩展Button类,或者类似的东西.

  5. 我希望它在设计时也能在Visual Studio 工作,无论是在最终应用程序中还是在其他与UI相关的模块中.

由于样式是在程序集内定义的,我显然不能在那里有App.xaml.因此,我假设我必须从Generic.xaml中包含它们.由于Generic.xaml仅在标准(Aero)主题中未定义样式时用作后备,因此WPF忽略我在Generic.xaml中的样式.

下一步可能是创建我自己的主题(以某种方式合并默认的Aero样式).但是,如何告诉VS在应用程序和模块中使用该主题,而不是例如Aero?我想我必须以声明方式执行此操作,因为我需要对自定义样式的设计时支持.

wpf

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

标签 统计

jsf-2 ×2

ajax ×1

cdi ×1

jboss7.x ×1

jpa-2.0 ×1

jsf ×1

repeat ×1

seam3 ×1

wpf ×1