小编niv*_*vis的帖子

将JSF dataTable中组件的id设置为数组中当前项的值

我有一个数据表,我想在构建表的数组中将每行的id设置为当前项(具有id字段的对象)的id.

例:

<h:dataTable
   value="#{bean.list}"
   var="item">
      <h:column>
         <h:outputText id="#{item.id}" .... />
      </h:column>
</h:dataTable>
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为我得到:javax.servlet.ServletException: Empty id attribute is not allowed.

由于JSF如何构建其id,或者我做错了什么,是不可能以这种方式设置id?

datatable jsf jsf-2

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

没有dataModel的JSF 2 dataTable行索引

我一直在使用ui:repeat来生成表格.使用ui:重复它很容易得到使用的编号行varStatus.我在调用辅助bean来处理列表导航时依赖于varStatus中的行id,例如在列表中向上或向下移动项目.

现在我想创建一个复合组件,构建一个可自定义的表,其中包含标记行,上/下移动等所需的所有功能.为此,ui:repeat将无法正常工作,因为我看不到任何方法处理不同数量的列; 我需要在一个地方指定标题,在另一个地方指定正文(我还没有达到可以创建自定义组件的知识点).因此,我继续使用数据表,因为使用这意味着将标题指定为与正文内容相同位置的构面.

这很有效,直到我注意到由于某种原因没有varStatus了.我已经花了很多工作来处理列表演示而不需要a datamodel,我不想开始使用它.有没有什么方法可以获得当前行号,因为它显示在表中,而不使用datamodel

我也正在使用viewScope,如果我理解正确,这意味着我无法将dataTable绑定到bean.

datatable jsf jsf-2 uirepeat

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

Facelets模板在另一个模板中

我想在另一个模板中使用Facelets模板.目前我有一个"基础"模板,到目前为止,我已经完成了所有页面.它有一个顶部和一个内容区域.

顶部有徽标,菜单,登录/注销功能,而内容区域则显示内容.

现在我需要做另一个页面(保存用户个人资料信息),我想在左边有一个菜单,并在右边显示结果.该页面应插入基本模板内容区域.

是否可以创建一个定义这两个区域(profile_left和profile_content)的新模板,并以某种方式仍然使用基本模板?

我没有理由不能只复制基本模板中的代码并添加我想要的新"定义"(profile_left和profile_content),但我仍然想知道是否可以继续使用原始基本模板.

templates facelets jsf-2

4
推荐指数
1
解决办法
5239
查看次数

魔术ui:重复var

我偶然发现了一个意想不到的行为,至少对我而言.当使用ui:repeat时,似乎我可以从外部访问var.

代码 - 页面:

<f:metadata>
   <f:event type="preRenderView" listener="#{xTest.init()}" />
</f:metadata>

<h:form id="xTestForm">
   <h:panelGroup layout="block">
      Track: #{trk.name}
   </h:panelGroup>

   <table>
      <ui:repeat
         value="#{xTest.trackList}"
         var="trk">
         <tr>
            <td>#{trk.name}</td>
            <td>
               <p:commandLink
                  actionListener="#{xTest.setTrack(track)}"
                  value="test"
                  update=":xTestForm" />
            </td>
         </tr>
      </ui:repeat>
   </table>
</h:form>
Run Code Online (Sandbox Code Playgroud)

代码 - Bean

package beans;

import dao.DAOFactory;
import dao.track.TrackDAO;
import dto.Track;
import exceptions.DAOException;
import java.io.Serializable;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import util.MessageUtil;

@ManagedBean
@ViewScoped
public class xTest implements Serializable {

    private DAOFactory daoFactory = Config.getInstance().getDAOFactory();
    private TrackDAO trackDAO;
    private …
Run Code Online (Sandbox Code Playgroud)

jsf scope jsf-2 uirepeat

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

从线程更新进度条和多个标签

我正在开发一个JavaFX应用程序,让用户选择一个文件夹,然后解析它的内容以查找MP3文件并读取它们的元数据.

虽然我发现很难让用户界面看起来很好,但我还是使用了Swing.因此,我试图在JavaFX中做同样的事情.

在最初的Swing应用程序中,我创建了一个线程,该线程开始解析用户选择的文件夹中的文件.它的工作原理如下:

  1. 找出要解析的文件总数 - 文件数和文件夹数在UI中的两个单独标签中连续显示
  2. 解析所有文件以查找哪些文件是MP3文件并存储元数据 - 在UI中的标签中连续显示找到的MP3文件数

同时更新标签,显示发生的事件的状态,以及反映上述两个步骤进度的进度条.第一步的进度占总进度的30%,而第二步的进度占另外70%.

我找到了如何将任务绑定到进度条的示例,但我还需要更新四个标签:状态,文件计数,文件夹数和MP3计数.

我相信我可以处理其中一个标签updateMessage,虽然我不知道如何管理其他三个.

javafx worker javafx-2 progress-bar

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

如何下载Mojarra JSF每晚构建

我很高兴看到f:ajax现在已经建立了delay支持.不高兴它虽然不起作用.有一个错误使它失败,似乎是因为收到指定延迟的方法需要一个数字而不是一个字符串.

无论如何,它将在版本2.2.4中修复,但我不知道如何获得该版本,或者甚至可能在它公开发布之前.

我的问题是,如果有人可以解释如何获得2.2.4版本的夜间版本,或者是否有一些解决方法.

jsf download nightly-build mojarra jsf-2.2

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

密码盐如何提高安全性

我试图了解密码盐如何提高安全性.基本上,对于每个用户密码,生成随机字符串,添加到密码然后进行散列.当用户登录时,系统为该特定用户获取salt,将其添加到密码,哈希并与存储的哈希值进行比较.

现在.我理解这是如何产生更长的密码/哈希值.我不明白是什么阻碍了自动化功能选择用户名,只是进行了大量的登录尝试 - 例如 - 一个网站,每次都有不同的密码.对我来说,似乎盐在那种情况下没有功能?

我确信我误解了这一点,如果有人能帮我理解,我会很高兴.

hash salt password-hash

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

在扩展泛型类的类中启动实例变量

我有一个泛型类"SimpleList"(摘录):

public abstract class SimpleList<T> {

   protected List<T> list;

   public SimpleList(List<T> list) {
      this.list = list;
   }
}
Run Code Online (Sandbox Code Playgroud)

另一个扩展它的类"TrackList"(摘录):

public class TrackList extends SimpleList {

    public TrackList(List<XmlTrack> list) {
        super(list);
    }
}
Run Code Online (Sandbox Code Playgroud)

在"TrackList"中,我指定该列表用于保存"XmlTrack"类型的对象.但是,似乎无法从该列表中获取对象并访问其方法.例如,这不起作用:

list.get(0).someMethodSpecificToXmlTrack()

我不明白为什么这不起作用?"SimpleList"中的列表是否设置为仅保存"XmlTrack"?

java generics list extend

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