小编Zac*_*ese的帖子

JSF支持bean结构(最佳实践)

我希望在这篇文章中,我可以得到人们对JSF页面和支持bean之间接口的最佳实践的看法.

我永远无法解决的一件事是我的支持豆的结构.此外,我从未找到关于这个主题的好文章.

什么属性属于哪个支持bean?何时适合向给定bean添加更多属性,而不是创建新bean并将属性添加到其中?对于简单的应用程序,考虑到将一个bean注入另一个bean所涉及的复杂性,为整个页面只有一个支持bean是否有意义?支持bean是否应该包含任何实际的业务逻辑,还是应该严格包含数据?

随意回答这些问题以及可能出现的任何其他问题.


至于减少JSF页面和支持bean之间的耦合,我从不允许JSF页面访问任何支持bean属性的属性.例如,我从不允许以下内容:

<h:outputText value="#{myBean.anObject.anObjectProperty}" />
Run Code Online (Sandbox Code Playgroud)

我总是需要这样的东西:

<h:outputText value="#{myBean.theObjectProperty}" />
Run Code Online (Sandbox Code Playgroud)

支持bean值为:

public String getTheObjectProperty()
{
    return anObject.getAnObjectProperty();
}
Run Code Online (Sandbox Code Playgroud)

当我循环遍历集合时,我使用包装类来避免向下钻取到数据表中的对象.

一般来说,这种方法对我来说是"正确的".它避免了视图和数据之间的任何耦合.如果我错了,请纠正我.

java jsf

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

使用特征优于抽象类的优点是什么?

有人可以解释Scala中的特征吗?特性优于扩展抽象类有什么优势?

scala traits

81
推荐指数
3
解决办法
3万
查看次数

JavaScript:使用或不使用jQuery更改onclick的值

我想onclick在锚点上更改属性的值.我想将其设置为包含JavaScript的新字符串.(该字符串由服务器提供给客户端JavaScript代码,它可以包含您可以onclick在HTML 中的属性中放置的任何内容.)以下是我尝试过的一些内容:

  • 使用jQuery attr("onclick", js)不适用于Firefox和IE6/7.
  • 使用setAttribute("onclick", js)Firefox和IE8,但不是IE6/7.
  • 使用onclick = function() { return eval(js); }不起作用因为您不允许使用return传递给的代码eval().

任何人都有建议将onclick属性设置为使其适用于Firefox和IE 6/7/8?另请参阅下面我用来测试它的代码.

<html>
    <head>
        <script type="text/javascript"
                src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script>
        <script type="text/javascript">
            $(document).ready(function(){
                var js = "alert('B'); return false;";
                // Set with JQuery: doesn't work
                $("a").attr("onclick", js);
                // Set with setAttribute(): at least works with Firefox
                //document.getElementById("anchor").setAttribute("onclick", js);
            });
        </script>
    </head>
    <body>
        <a href="http://www.google.com/" id="anchor" onclick="alert('A'); return false;">Click</a>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

javascript jquery attributes onclick

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

Flash与Flex

我试着到处寻找使用Flex vs. Flash的优缺点的简明列表.

来自编程背景,我非常喜欢Flex.它很容易上手,因为它可以使用flash类,为什么我要使用Flash而不使用flex?

柔性:

优点:

  • 适合RIA开发
  • 提供了许多开箱即用的用户输入选项
  • 建立布局系统
  • MXML对于非程序员来说更容易
  • 您可以快速组合组件以创建小型应用程序
  • 组件可以在大规模项目中提供优势,因为它们具有模块化特性.
  • 可以使用linux开发
  • 有一个很好的组件生命周期进行验证等.

缺点:

  • 增加.swf的大小
  • 根据您正在寻找的视觉风格,自定义组件的外观可能比预期花费更长的时间
  • 当你发现需要一个不存在的自定义组件时,你可能需要回到Flash来进行真正的编程工作和组件的打包
  • Flex的"灵活性"意味着您将阅读大量文档
  • Flex框架中的错误
  • 您最终将需要妥协Flex框架的体系结构

优点:

  • 适合制作电影/动画
  • 设计师/动画师可以更容易地将时间轴概念化
  • 从头开始工作时,提供了很多控制.
  • 对于有编程背景的人来说更容易
  • 你可以随心所欲地编程; 与现有框架没有任何妥协

缺点:

  • 仅提供开箱即用的基本用户输入(文本框).
  • 时间表对于程序员来说可能是令人生畏的(尽管你可以非常安全地忽略它)
  • 某些类型的应用程序的开发将比使用Flex慢
  • 无法使用linux开发
  • 用户输入验证必须全部在代码中处理.没有内置验证.
  • 需要实施自己的布局系统

如果我错过了迄今所说的任何内容,请纠正我.

apache-flex flash comparison flex3

40
推荐指数
4
解决办法
2万
查看次数

Scala作为新的Java?

我刚开始在空闲时间探索Scala.

我不得不说到目前为止我印象非常深刻.Scala位于JVM之上,与现有Java代码无缝集成,并具有Java不具备的许多功能.

除了学习新语言之外,切换到Scala有什么缺点?

java scala

33
推荐指数
3
解决办法
5107
查看次数

当我多次重复使用时,如何访问布局中的视图?

我已经在Android开发人员上阅读了Android UI技巧2,它告诉人们如何多次在另一个布局文件中包含布局,并为这些布局提供不同的ID.但是,此处的示例是覆盖布局ID,而不是此布局中视图的ID.例如,如果workspace_screen.xml如下所示:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<TextView android:id="@+id/firstText"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="first"/>
<TextView android:id="@+id/secondText"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="second"/>
Run Code Online (Sandbox Code Playgroud)

我在另一个布局文件中包含了三次.我最终得到三个带有id firstText的TextView,还有另外三个带有secondText的TextView?是不是有碰撞?如何在findViewById的第三个包含布局中找到secondText TextView?我应该在findViewById方法中输入什么?

layout android include

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

JSF单元测试

我正在尝试为JSF找到一个实用的单元测试框架.

我知道JSFUnit,但这对我来说非常不切实际.我需要在我的项目中包含大约10个JAR,并跳过许多其他的箍以使其运行.

我意识到 - 由于需要模拟平台和客户端 - 单元测试Web应用程序很困难.但有更好的方法吗?

java jsf junit unit-testing jsfunit

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

IE(HTTPS):从php文件生成pdf不起作用

这是我的问题.我正在尝试调用页面:foo.php?docID = bar并将PDF返回到屏幕,该屏幕在数据库中存储为BLOB.

以下是我的代码中实际返回PDF的部分:

$docID = isset($_REQUEST['docID']) ? $_REQUEST['docID'] : null;

if ($docID == null){
    die("Document ID was not given.");
}

$results = getDocumentResults($docID);

if (verifyUser($user, $results['ProductId'])){
    header('Content-type: application/pdf');
    // this is the BLOB data from the results.
    print $results[1];
}
else{
    die('You are not allowed to view this document.');
}
Run Code Online (Sandbox Code Playgroud)

这在Firefox中运行得非常好.

但是,在IE中,它根本没有显示任何内容.如果我在另一个页面(即google.com),并输入网址转到此页面,它会说已经完成,但我仍然会在屏幕上显示google.com.

我检查了来自firefox和IE的响应的标题.它们完全相同.

有没有人有什么建议?需要更多信息?

编辑:如果它有帮助,这里是响应标题和内容的第一行:

HTTP/1.1 200 OK
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Length: 349930
Content-Type: application/pdf
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Server: …
Run Code Online (Sandbox Code Playgroud)

php pdf https internet-explorer

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

Scala点语法(或缺少)

当我遇到一段对我来说没有意义的代码时,我正在阅读精彩的" Scala编程"一书:

def above(that: Element): Element = {
    val this1 = this widen that.width
    val that1 = that widen this.width
    elem(this1.contents ++ that1.contents)
}
Run Code Online (Sandbox Code Playgroud)

注意第2和第3行:

val this1 = this widen that.width 
Run Code Online (Sandbox Code Playgroud)

似乎我应该能够用以下内容替换它:

val this1 = this.widen that.width
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试编译此更改时,它会给出以下错误:

错误:';' 预期,但'.' 找到.
val this1 = this.widen that.width ^

为什么这种语法不可接受?

java syntax scala

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

优点与缺点:Hibernate与EJB 3

Hibernate和EJB3相对于彼此有什么优缺点?

我找到了这篇文章,但它没有真正解决我的问题.如果我对这两种技术没有任何特殊的联系,那会导致我选择一种技术吗?或者是否有我想要同时使用它们的情况?

谢谢,扎克

编辑:回应评论:我对EJB3了解不多.我只是想了解它是否适​​用于我的公司.如果EJB3不能与Hibernate相媲美,请解释原因.

java orm hibernate jpa

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