【发布时间】:2021-03-19 12:07:04
【问题描述】:
大家好, 我有一个关于从输入文本字段更新 p:editor 中电子邮件的问候全名的小问题。在使用 id email_sender 更新我的 primefaces 输入文本字段后,我希望能够更改相关文本区域中的文本。
例如,我尝试了这些不起作用的方法:
包含输入文本字段和编辑器的对话框
<p:dialog header="Share Document via Email" widgetVar="newMailDlg"
modal="true" showEffect="slide" hideEffect="slide" height="800"
width="100%" id="newMailDlg">
<div class="form-group">
<div class="col-md-12">
<label for="inputName" class="col-sm-3 control-label"><h:outputText
value="#{msg['email.sender']}:" /></label>
<div class="col-sm-6">
<h:inputText styleClass="form-control input-sm"
id="email_sender"
value="#{EnquiryComponent.senderName}" maxlength="50"
required="false" label="sender">
<p:ajax event="blur" listener="#{EnquiryComponent.setRegards()}"
update="@([id$=email_content])" />
</h:inputText>
</div>
</div>
</div>
<div class="form-group">
<div class="col-md-12">
<label for="inputName" class="col-sm-2 control-label"><h:outputText
value="#{msg['email.content']}:" /></label>
<div class="col-sm-12">
<p:editor id="email_content" widgetVar="email"
value="#{EnquiryComponent.blankEmail.content}" height="250" />
</div>
</div>
</div>
<div class="form-group">
<div class="col-md-12">
<p:commandButton id="sendEmail" styleClass="green-btn"
ajax="false" value="Send Mail"
action="#{EnquiryComponent.saveEmail(EnquiryComponent.blankEmail, EnquiryComponent.task, true)}" />
</div>
</div>
</p:dialog>
我的支持 bean 用于更新包含我的电子邮件模板中的关键变量的映射
public void setRegards() {
logger.info("Changed recipient name to : " + senderName);
emailModel.put("user", senderName);
}
Bean 设置 P:editor 内容
public void onSendMail(String refNo, TreeNode treeNode) {
ResourceBundle rb = ResourceBundle.getBundle("SIL-mail", Locale.getDefault());
String sender = rb.getString("mail.default.from");
blankEmail = new Email();
task = null;
blankEmail.setSender(sender);
senderName= SilUtils.getUserObj().getFullUserName();
listGlbAccessUsers = new ArrayList<>();
listGlbAccessUsers=glbAccessUsersService.getDao().findAll();
AlfDocument doc = (AlfDocument) treeNode.getData();
// String link = previewDocument(doc);
String link = generateAlfrescoEditURL(treeNode);
link = link.split("&")[0];
emailModel = new HashMap<>();
emailModel.put("documentLink", link);
emailModel.put("refNo", refNo);
emailModel.put("task", "");
emailModel.put("user", senderName);
blankEmail.setContent(mailService.getMailContent("mail_acknowledge.vm", emailModel));
SilUtils.showDialog("newMailDlg");
}
【问题讨论】:
-
您最好尝试使用 JavaScript 并使用输入文本
onchange中的 JS 代码更新 p:editor 内容。 -
@Melloware 感谢您的输入。你能帮我写JS部分吗?我没有做过太多的JS。谢谢。
-
对不起,我没有那么多时间投入,但这对你来说是一个很好的学习机会!
标签: javascript java html primefaces