小编the*_*cuz的帖子

如何在JSF EL中显示List#size()的值?

我想知道是否有办法将方法的返回值绑定到JSF组件中.我会更好地解释自己.假设我有这样一个类:

public class Document {
   private List<Attachment> attachments;
   //getter and setter here
}
Run Code Online (Sandbox Code Playgroud)

这个类通过一个名为currentDocument的属性中的注册托管bean暴露给jsf,并以这种方式用于jsf

<h:outputText value="#{myManagedBean.currentDocument.attachment.size}" />
Run Code Online (Sandbox Code Playgroud)

我知道,这是不正确的.但是这样做的正确方法是什么?我应该在Document类上创建一个属性,让我们说numberOfAttachments,并绑定到那个,或者有一种方法直接绑定方法的返回值?

jsf binding el jsf-2

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

从头开始TDD项目

我在TD上阅读了很多关于TDD和单元测试的问题和答案,但我没有找到答案:我从哪里开始?

我和团队已经完成了一些项目,其中我们采用了单元测试,用于我们的代码......但首先是代码,然后是单元测试.在开发过程的某个阶段,首先编写测试然后编写代码变得非常自然,这使我们更具TDD风格.

现在我们想进行下一步,并尝试从一开始就使用TDD开始一个新项目.这是问题......从哪里开始?当我没有代码时,这是我写的第一个测试?

让我们说,只是为了有一个思考的背景,我必须开发一个互联网应用程序,以文档为中心,有一点工作流程......还有别的东西.但是让我们从头开始:首先,我想创建一个简单的页面,列出存储在DB上的表中的所有文档(元数据)(非常简单,嗯?).这是我写的第一个测试?假设我正在使用Hibernate访问数据库...我会测试ipothetical方法getAllDocuments()吗?但是我应该使用模拟对象来替换Hibernate吗?那么我在测试什么?

我在这里有点混淆......而且getAlDocuments()可能永远不会是一个生产方法...所有的文档集合都将按照某些东西进行排序和过滤......这有意义吗?任何建议将不胜感激

编辑:

在阅读了你的答案(以及http://programmers.stackexchange.com上的类似帖子)之后,我对TDD有了更好的看法,但我仍然有一个dubt.

我总是认为TDD是关于首先进行单元测试...从未想过端到端测试.但是让我问一下:TDD说你必须编写测试并看到编译错误; 然后你创建类和方法,你得到测试失败; 然后你实现方法并通过测试.在测试失败之前,您无法编写代码; 在所有测试通过之前,你不能写另一个测试.我在这儿吗?

如何进行端到端测试作为我的第一次测试?我应该在所有层中编写所有代码,以便让测试通过.但是我会有一堆类和方法都通过我的端到端测试进行测试(我不应该把它称为集成测试吗?).这意味着我不再需要单元测试,因为我已经有一个覆盖我的代码的测试.我不能写一个已经通过的测试,这是针对TDD的实践.

请帮助我进一步了解这一步

tdd unit-testing

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

在Eclipse中运行JUnit Test会打开控制台面板

我想问一个关于运行测试的开发环境配置的简单问题.我正在使用Eclipse Helios和Junit4,我将所有测试都放在一个单独的源文件夹中.当我运行我的测试(全部,部分或仅一个,它是相同的)时,Eclipse会自动打开控制台面板以显示正在测试的类的记录信息.

有没有办法避免这种情况并将Eclipse保留在JUnit视图(或面板)上,从而避免控制台面板在我运行测试后立即变为活动状态?我尝试关闭控制台面板,但是当我运行测试时它重新打开...

eclipse junit

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

jsf输出html格式的文本

对于你来说,我有一个非常微不足道的问题jsf expert ...我正在使用JSF 2.0应用程序.说我有一个包含html部分的属性的托管bean向用户显示,我应该使用哪个面向控件直接在页面上发出该html,而不编码?

jsf

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

JSF facelet页面不带有'&'字符的javascript字符串

在JSF facelet页面(.xhtml)中我有这个javascript代码

<script type="text/javascript">
        function navigateToDetail() {
            var id = document.getElementById("idElemento").value;
            alert(id);
            var isPratica = document.getElementById("isPratica").value;
            alert(isPratica);
            var box = "#{boxCtrl.idBox}";
            alert(box);             
            if (isPratica==true)
                window.location = "DettaglioRichiesta.xhtml?id=" + id + "&box=" + box;
            else
                window.location = "../Richieste/DettaglioRichiesta.xhtml?id=" + id + "&box=" + box;

        }
    </script>
Run Code Online (Sandbox Code Playgroud)

它不起作用,因为jfs引擎认为"&box"是相对于绑定的,它说:

Error Parsing /Box/ListaRichieste.xhtml: Error Traced[line: 20] The reference to entity "box" must end with the ';' delimiter
Run Code Online (Sandbox Code Playgroud)

我可以避免这种行为吗?

javascript jsf facelets

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

如何保存2个相关的selectOneMenu值

关于jsf相关的下拉选择,我在这里遇到了一个小问题.我有2个下拉选择:第一个是独立的,第二个显示结果依赖于这是代码:

<h:panelGroup id="addressPanel">        
        <h:outputLabel styleClass="label" value="Provincia: " />
        <h:selectOneMenu onchange="updateCombos()"
            value="#{indirizzoCtrl.codiceProvincia}"  >
            <f:selectItem itemValue="" itemLabel=""></f:selectItem>
            <f:selectItems value="#{indirizzoCtrl.allProvincia}" var="c"
                itemLabel="#{c.nome}" itemValue="#{c.siglaProvincia}" />
        </h:selectOneMenu>
        <h:outputLabel styleClass="label" value="Comune: " />
        <h:selectOneMenu 
            value="#{indirizzoCtrl.codiceComune}"  >
            <f:selectItem itemValue="" itemLabel=""></f:selectItem>
            <f:selectItems value="#{indirizzoCtrl.allComuni}" var="c"
                itemLabel="#{c.descrizione}" itemValue="#{c.codiceComune}" />

        </h:selectOneMenu>
    </h:panelGrid>
</h:panelGroup>
<p:remoteCommand name="updateCombos" update="addressPanel masterForm:msg"  />              
<p:commandButton styleClass="commandButton" value="Save"
    actionListener="#{indirizzoCtrl.save}">
</p:commandButton>
Run Code Online (Sandbox Code Playgroud)

好吧,当用户在选择了两个值后保存表单时,托管bean indirizzoCtrl(请求作用域)无法将第二个下拉列表的值映射回列表,因为没有列表.事实上,#{indirizzoCtrl.allComuni}只有在indirizzoCtrl.codiceProvincia!=null...更新模型阶段之前,才调用从数据库检索数据的getter .因此,第一次调用列表的getter时无法检索任何值,这会使更新模型阶段失败.我怎么能处理这个场景......我认为这是一个很常见的场景,所以我在这里遗漏了一些东西......

ajax jsf jsf-2

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

为什么这个Oracle查询不起作用?

我有这个简单的Oracle语句来删除行...但我无法让它工作

delete from NPEA.tnpe00_all
where EXISTS
  (select 1
  from NPEA.tnpe05_doc, NPEA.tnpe00_all
  where NPEA.tnpe05_doc.n_doc =  NPEA.tnpe00_all.t_doc
    and NPEA.tnpe05_doc.n_prt is null
    and NPEA.tnpe05_doc.n_can = 4
  order by n_doc)
Run Code Online (Sandbox Code Playgroud)

错误代码是

00907. 00000 -  "missing right parenthesis"
Run Code Online (Sandbox Code Playgroud)

这有什么问题?

sql oracle

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

.Net SHA256Managed产生无效散列

我正在编写一个函数来在文件上生成SHA256哈希.这是我使用的代码

public string ComputeHash(Byte[] inputBytes)
    {
        Byte[] hashedBytes = new SHA256Managed().ComputeHash(inputBytes);
        return BitConverter.ToString(hashedBytes);
    }
Run Code Online (Sandbox Code Playgroud)

非常简单.事实上,根据我尝试的一些工具,产生的散列似乎没有效果,实际上,它与我见过的任何其他sha256字符串不同(甚至不是256字节).例如,一个结果是

12-10-B2-60-24-75-11-95-B5-F7-F6-64-39-C3-22-9F-E7-E7-D4-13-69-18-99-C5-A7-C5-EC-2F-E2-D6-09-19
Run Code Online (Sandbox Code Playgroud)

即使我修剪掉每一个字符,一切都是大写的,而我总是看到小写的代表.(这也是一个问题)我想知道我是否以正确的方式使用该库.请帮忙

.net hash cryptography sha256

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

标签 统计

jsf ×4

jsf-2 ×2

.net ×1

ajax ×1

binding ×1

cryptography ×1

eclipse ×1

el ×1

facelets ×1

hash ×1

javascript ×1

junit ×1

oracle ×1

sha256 ×1

sql ×1

tdd ×1

unit-testing ×1