java - JSF - 突出显示表中更改的数据(在事务内)可重用框架

标签 java jsf frameworks

在实现数据输入实用程序时,我需要突出显示表中其值已被该事务更改的字段。 (并非表格中的所有字段都需要更改)

一个可重复使用的框架可以为类似的实用程序/事务复制相同的功能,而无需“一次性”解决方案的复制成本。如果易于添加到现有流程中,它可能会更有用。我希望在 JSF 1.1 中实现这样的框架。 虽然其中大部分可能涉及更改/更改已经开发的通用组件, 我觉得可能有一个通用的方法。

在我的特定情况下,我有可重用的表格构建器和导航/事务 框架。

可能的方法:

  1. 纯服务器端。缓存先前状态的数据bean。循环并进行比较。以某种方式利用数据字段的绑定(bind)返回到组件并触发它们的突出显示? (或者让组件根据导航 xml 查找 bean,并针对它们的字段触发它们自己的突出显示。)

  2. 做更多的客户端方法。编辑组件会知道它们的先前状态并知道它们的输入值。比较并触发突出显示。不确定这将如何传递到下一个页面/状态。

一般想法和部分解决方案。受欢迎的。还有关于这是否在其他框架(Grails?)中可用的任何信息。 (做某事最简单的方法是看看它是如何完成的!)

感谢任何帮助/推测/良好的头脑 Storm !

最佳答案

做这个客户端更容易,对用户更友好。

考虑jQuery时JS 框架,这很简单:

$(':input').each(function() {
    $(this).attr('data-original', $(this).val()).change(function() {
        $(this).toggleClass('changed', $(this).val() != $(this).attr('data-original'));
    });
});

结合这个 CSS 例子:

.changed { background: #fee; }

这是一个有效的 SSCCE .复制'n'粘贴'然后运行它以自己查看。

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>SO question 3170317</title>
        <script src="http://code.jquery.com/jquery-latest.min.js"></script>
        <script>
            $(document).ready(function(){
                $(':input').each(function() {
                    $(this).attr('data-original', $(this).val()).change(function() {
                        $(this).toggleClass('changed', $(this).val() != $(this).attr('data-original'));
                    });
                });
            });
        </script>
        <style>
            .changed { background: #fee; }
        </style>
    </head>
    <body>
        <form>
            <input value="change">
            <input value="those">
            <input value="inputs">
         </form>
    </body>
</html>

(如果你想让它监听每个按键而不是变化和模糊,只需将第 2 JS 行中的 change 部分替换为 keyup,这里是live demo 使用 keyup)

关于java - JSF - 突出显示表中更改的数据(在事务内)可重用框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3170317/

相关文章:

java - Java 最高效的 JSF 1.2 导航

.net - .Net 4.5 是否包含 .Net 4.0

macos - Mac OS X 上第 3 方框架中的 header

java - 在 Visual Paradigm 中对 Java 包图进行逆向工程

Java Bean @Autowired 错误

java - 如何设置JCheckBox使用JScrollPane?

java - 如何在 Primefaces 数据表中表示嵌套数据?

jsf - 具有可变列和特定可编辑单元格的 PrimeFaces 数据表

objective-c - 具有相同符号的两个框架

java - 按空格而不是包含空格的双引号 (") 拆分 Java String