我正在开发JSF Web应用程序并且有一些HOW-TO问题。 我有以下用例场景:
我想以通用方式发送加密值。对用户来说应该是透明的。我想有一个机制来使用html属性标记“加密就绪”字段,例如。加密= “真”。
数据必须在客户端加密,因为服务器无法以RAW格式查看。
提前致谢。
答案 0 :(得分:1)
以下是一个如何使用jQuery的示例:
<h:head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</h:head>
<h:body>
<script>
$(function() {
$("form").submit(function() {
$("input[data-encrypt='true']").each(function() {
$(this).val(encrypt($(this).val()));
});
});
$("input[data-encrypt='true']").each(function() {
if ($(this).val()) {
$(this).val(decrypt($(this).val()));
}
});
});
function decrypt(str) {
// to be implemented
return "decrypted value";
}
function encrypt(str) {
// to be implemented
return "encrypted value";
}
</script>
<h:form id="form">
<h:inputText value="#{viewBean.value}" id="val" pt:data-encrypt="true" />
<h:commandButton value="Process" />
</h:form>
</h:body>
您可以在自己的.js文件中提取javascript部分,并将其包含在您需要的任何页面中。 不要忘记定义pt命名空间:
xmlns:pt="http://xmlns.jcp.org/jsf/passthrough"
此解决方案不适用于f:ajax。