- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 primefaces 的新手,我的英语不是很好。我已经生成了一个数据表,当我单击数据 TableView 按钮时,将出现一个带有支持 bean 数据的模型 diloag 框。我的问题是我的 diloag 没有显示来自支持 bean 的当前数据。但是当我通过转到 url 刷新页面时,它将显示我以前的数据。我在这里添加 mu 代码和支持 bean 请帮忙
我的.xhtm 是
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui"
xmlns:c="http://java.sun.com/jsp/jstl/core">
<ui:composition template="/layouts/BasicTemplate.xhtml">
<ui:define name="content">
<div class="container">
<script type="text/javascript">
alert('hi');
</script>
<h:form prependId="false" id="mainform">
<p:dataTable var="test" value="#{examinationFormBean.candidateList}" paginator="true" rows="10" id="datatable">
<p:column headerText="Id">
<h:outputText value="#{test.id}" />
</p:column>
<p:column headerText="Name Of Candidate">
<h:outputText value="#{test.user.name}" />
</p:column>
<p:column headerText="Mobile No ">
<h:outputText value="#{test.user.mobileNo}" />
</p:column>
<p:column headerText="E-mail Address">
<h:outputText value="#{test.user.email}" />
</p:column>
<p:column headerText="View/Action">
<p:commandLink value="View" action="# {examinationFormBean.readFormStatus(test.id)}" oncomplete="PF('test').show()">
</p:commandLink>
</p:column>
</p:dataTable>
</h:form>
</div>
<p:dialog widgetVar="test" id="dialog" height="600" width="760">
<h:form class="form-horizontal" id="data">
<div class="row" >
<p:growl id="growl" sticky="true" showDetail="true" />
<p:panel header="Examination Details" id="data">
<h:panelGrid columns="2" cellpadding="4" border="1" id="panael1" style="text-align: left;color: #333399;" width="760">
<h:outputText value="#{msg['elicense.examinationform.personal.proposeofexam']}"/>
<h:outputText id="propExam" value="#{examinationFormBean.examination.name}"/>
<h:outputText value="#{msg['elicense.examinationform.personal.classofcertificates']}" />
<c:if test="#{examinationFormBean.elementaryPrinciples==true}">
Elemetry Principle
</c:if>
<!-- <h:outputText id="grid" value="Elemetry Principle" rendered="#{examinationFormBean.elementaryPrinciples==true}"/> -->
<c:if test="#{examinationFormBean.wiringForSystem==true}">
<p:spacer></p:spacer>
<h:outputText id="data1" value="Wiring for System not Exceeding 250 Volts"/>
</c:if>
<p:spacer></p:spacer>
<h:outputText id="data2" value="D. C. Apparatus not Exceeding 650 Volts" rendered="#{examinationFormBean.dcApparatus==true}"/>
<p:spacer></p:spacer>
<h:outputText id="data3" value="A. C. Apparatus not Exceeding 650 Volts" rendered="#{examinationFormBean.acApparatus==true}" />
<p:spacer></p:spacer>
<h:outputText id="data4" value="Underground Cables Voltage upto 1100 Volts" rendered="#{examinationFormBean.undergroundCable1100Volts==true}"/>
<p:spacer></p:spacer>
<h:outputText id="data5" value="Underground Cables Voltage upto 11900 Volts" rendered="#{examinationFormBean.undergroundCable11900Volts==true}"/>
<p:spacer></p:spacer>
<h:outputText id="data6" value="Underground Cables Voltage exceeding 33000 Volts" rendered="#{examinationFormBean.undergroundCable3300Volts==true}"/>
<p:spacer></p:spacer>
<h:outputText id="data7" value="Installation exceeding 650 Votts" rendered="#{examinationFormBean.installationExceding650Volts==true}"/>
<p:spacer></p:spacer>
<h:outputText id="data8" value="Overhead lies Upto 650 Volts" rendered="#{examinationFormBean.overHeadLiesupto650Volts==true}"/>
<p:spacer></p:spacer>
<h:outputText id="data9" value="Overhead lies Upto 33000 Volts" rendered="#{examinationFormBean.overHeadLiesupto3300Volts==true}"/>
<p:spacer></p:spacer>
<h:outputText id="data10" value="Overhead lies Exceeding 33000 Volts" rendered="#{examinationFormBean.overHeadLiesExceeding3300Volts==true}"/>
<p:spacer></p:spacer>
<h:outputText id="data11" value="Mining Installation(Bellow Ground)" rendered="#{examinationFormBean.minigInstallation==true}"/>
<p:spacer></p:spacer>
<h:outputText id="data12" value="Mining Installation(Bellow Ground)" rendered="#{examinationFormBean.minigInstallation==true}"/>
<p:spacer></p:spacer>
<h:outputText id="data13" value="Wiring for System not exceeding 650 Volts" rendered="#{examinationFormBean.wiringForSystemUpto650Volts==true}"/>
<p:spacer></p:spacer>
<h:outputText id="data14" value="Electric Lt" rendered="#{examinationFormBean.electricIt==true}"/>
<p:spacer></p:spacer>
<h:outputText id="data15" value="Electrict Signs" rendered="#{examinationFormBean.electricSigns==true}"/>
<p:spacer></p:spacer>
<h:outputText id="data16" value="Medium Pressure Indian Electricity Rules 1959" rendered="#{examinationFormBean.mediumPressure==true}"/>
<p:spacer></p:spacer>
<h:outputText id="data17" value="Motor wiring(Including Generators)" rendered="#{examinationFormBean.motorWiring==true}"/>
<p:spacer></p:spacer>
<h:outputText id="data18" value="Overhead Lines(LT)" rendered="#{examinationFormBean.ltOverHeadLines==true}"/>
<p:spacer></p:spacer>
<h:outputText id="data19" value="Pepar Insulated cables(laying and joining)" rendered="#{examinationFormBean.paperInsulatedCables==true}"/>
<h:outputText value="#{msg['elicense.examinationform.examination.centerofexamination']}" />
<h:outputText id="examcenterid" value="#{examinationFormBean.center.name}" />
<h:outputText value="#{msg['elicense.examinationform.examination.languagepaper']}" />
<h:outputText id="language" value="#{examinationFormBean.language.name}" />
</h:panelGrid>
</p:panel>
<!-- personal details -->
<ui:include src="/pages/personalView.xhtml" />
<!-- Education Qualification -->
<p:panel header="Education Qualification">
<ui:include src="/pages/educationalQualificationsView.xhtml" />
</p:panel>
<!-- Certificate or Permit Details -->
<p:panel header="Previous Certificate Details">
<h:panelGrid columns="2" style="text-align: left;color: #333399;" width="760">
<h:outputText value="#{msg['elicense.examinationform.academic.premitno']}" />
<h:outputText id="permitid" value="#{examinationFormBean.previousCertificate.previousPermitNo}" />
<h:outputText value="#{msg['elicense.examinationform.academic.certificate']}" />
<h:outputText id="certificateid" value="#{examinationFormBean.previousCertificateNo}" />
<h:outputText value="#{msg['elicense.examinationform.academic.otherstatepermitno']}" />
<h:outputText id="otherstatepermitid" value="#{examinationFormBean.otherStatePermitNo}" />
<h:outputText value="#{msg['elicense.examinationform.academic.otherstatecertificateno']}" />
<h:outputText id="otherstatecertificateid" value="#{examinationFormBean.otherStateCertificateNo}" />
<!-- <h:outputText
value="#{msg['elicense.examinationform.academic.dateofissue']}" />
<h:outputText id="compopupforprivious"
value="#{examinationFormBean.previousRegistrationDate}" />
-->
</h:panelGrid>
</p:panel>
<!-- Experience Details -->
<p:panel header="Experience Details">
<ui:include src="/pages/experienceView.xhtml" />
</p:panel>
<!-- Treasury Challan Details -->
<ui:include src="/pages/treasuryChallanView.xhtml" />
<!-- Attachment -->
<p:panel header="Upload necessary Document">
<h:panelGrid columns="2" style="text-align: left;color: #333399;" width="760" border="1">
<h:outputText value="#{msg['elicense.examinationform.uplod.document']}" />
<p:graphicImage value="#{examinationFormBean.candidatePhoto}" />
<h:outputText value="#{msg['elicense.examinationform.uplod.sign']}" />
<p:graphicImage value="#{examinationFormBean.signature}" mode="simple" disabled="false" label="Candidates Signature " />
<p:spacer></p:spacer>
<p:messages id="messageid"/>
<h:outputText value="Action :" class="alignment"/>
<p:selectOneRadio id="console" value="#{examinationFormBean.action}" required="true" label="Action">
<f:selectItem itemLabel="Accept" itemValue="CD3" />
<f:selectItem itemLabel="Reject" itemValue="CD4" />
</p:selectOneRadio>
<!-- <h:outputLabel value="Comment:"></h:outputLabel>
<h:inputText id="compid" value="#{examinationFormBean.comment}" /> -->
<p:spacer></p:spacer>
<p:commandButton value="Proceed to Zonal Electrical Inspector>>"
action="#{examinationFormBean.saveFormStatus()}" update="@this,messageid,data" process="data" oncomplete="if (args && !args.validationFailed) PF('test').hide()" >
<f:ajax update="datatable"/>
</p:commandButton>
</h:panelGrid>
</p:panel>
</div>
</h:form>
</p:dialog>
</ui:define>
</ui:composition>
</html>
我的支持 bean 是:
package brahmaputra.bohniman.elicense.core.managedbeans;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import org.primefaces.event.FlowEvent;
import org.primefaces.model.UploadedFile;
import brahmaputra.bohniman.elicense.core.models.Center;
import brahmaputra.bohniman.elicense.core.models.CertificateClass;
import brahmaputra.bohniman.elicense.core.models.Education;
import brahmaputra.bohniman.elicense.core.models.Examination;
import brahmaputra.bohniman.elicense.core.models.ExaminationDetails;
import brahmaputra.bohniman.elicense.core.models.Experience;
import brahmaputra.bohniman.elicense.core.models.FormStatus;
import brahmaputra.bohniman.elicense.core.models.Language;
import brahmaputra.bohniman.elicense.core.models.PersonalDetails;
import brahmaputra.bohniman.elicense.core.models.PreviousCertificate;
import brahmaputra.bohniman.elicense.core.models.TreasuryChallan;
import brahmaputra.bohniman.elicense.core.models.User;
import brahmaputra.bohniman.elicense.core.models.Wizard;
import brahmaputra.bohniman.elicense.core.services.DDUtilService;
import brahmaputra.bohniman.elicense.core.services.ExaminationDetailsService;
@ManagedBean
@SessionScoped
public class ExaminationFormBean{
//To Read Form Staus
public void readFormStatus(Long id)
{
System.out.println("id is "+id);
//To display formstatus
formStatus = examinationDetailsService.readFormStatusIdById(id);
//To display examination details
ExaminationDetails examinationDetails=examinationDetailsService.readExaminationDetails(id);
setExamination(examinationDetails.getExamination());
setCenter(examinationDetails.getCenter());
setLanguage(examinationDetails.getLanguage());
setAcApparatus(examinationDetails.getAcApparatus());
setDcApparatus(examinationDetails.getDcApparatus());
setElectricIt(examinationDetails.getElectricIt());
setElectricSigns(examinationDetails.getElectricSigns());
setElementaryPrinciples(examinationDetails.getElementaryPrinciples());
setHighPressure(examinationDetails.getHighPressure());
setHtOverHeadLines(examinationDetails.getHtOverHeadLines());
setInstallationExceding650Volts(examinationDetails.getInstallationExceding650Volts());
setLtOverHeadLines(examinationDetails.getLtOverHeadLines());
setMediumPressure(examinationDetails.getMediumPressure());
setMotorWiring(examinationDetails.getMotorWiring());
setMinigInstallation(examinationDetails.getMinigInstallation());
setOtherInstallation(examinationDetails.getOtherInstallation());
setOverHeadLiesExceeding3300Volts(examinationDetails.getOverHeadLiesExceeding3300Volts());
setOverHeadLiesupto3300Volts(examinationDetails.getOverHeadLiesupto3300Volts());
setOverHeadLiesupto650Volts(examinationDetails.getOverHeadLiesupto3300Volts());
setPaperInsulatedCables(examinationDetails.getPaperInsulatedCables());
setWiringForSystem(examinationDetails.getWiringForSystem());
setWiringForSystemUpto650Volts(examinationDetails.getWiringForSystemUpto650Volts());
System.out.println("Examination"+examinationDetails.getExamination().getName());
//To display personal info
personalDetails=examinationDetailsService.readPersonalDetailsById(id);
personalBean.setFatherName(personalDetails.getFatherName());
personalBean.setCitizenshipReason(personalDetails.getCitizenshipReason());
personalBean.setCitizenshipValue(personalDetails.getOtherReason());
personalBean.setNationality(personalDetails.getNationality());
personalBean.setDateofBirth(personalDetails.getDateOfBirth());
personalBean.setPermanentAddressLine1(personalDetails.getPermanentAddressLine1());
personalBean.setPermanentAddressLine2(personalDetails.getPermanentAddressLine2());
personalBean.setPermanentDistrict(personalDetails.getPermanentDistrict());
personalBean.setPermanentPinCode(personalDetails.getPermanentPincode());
personalBean.setPermanentState(personalDetails.getPermanentState());
personalBean.setPresentAddressLine1(personalDetails.getPresentAddressLine1());
personalBean.setPresentAddressLine2(personalDetails.getPermanentAddressLine2());
personalBean.setPresentDistrict(personalDetails.getPresentDistrict());
personalBean.setPresentState(personalDetails.getPresentState());
personalBean.setPresentPinCode(personalDetails.getPresentPincode());
//to display Educational qualification
Education education=examinationDetailsService.readEducationById(id);
educationalQualificationsBean.setInstituteName(education.getInstituteName());
educationalQualificationsBean.setCertificateNumber(education.getCertificateNo());
educationalQualificationsBean.setDegree(education.getDegree());
//To display previous certificate display
previousCertificate=examinationDetailsService.readCertificateById(id);
this.setPreviousCertificateNo(previousCertificate.getPreviousCertificateNo());
this.setPreviousPermitNo(previousCertificate.getPreviousPermitNo());
this.setOtherStateCertificateNo(previousCertificate.getOtherStateCertificateNo());
this.setOtherStatePermitNo(previousCertificate.getOtherStatePermitNo());
//To display experiance details
Experience experience=examinationDetailsService.readExperianceById(id);
experienceBean.setCommenceDateOne(experience.getCommenceDateOne());
experienceBean.setCommenceDateThree(experience.getCommenceDateThree());
experienceBean.setCommenceDateTwo(experience.getCommenceDateTwo());
experienceBean.setOrganisationNameOne(experience.getOrganisationNameOne());
experienceBean.setOrganisationNameThree(experience.getOrganisationNameThree());
experienceBean.setOrganisationNameTwo(experience.getOrganisationNameTwo());
experienceBean.setTerminatiDateOne(experience.getTerminatiDateOne());
experienceBean.setTerminatiDateThree(experience.getTerminatiDateThree());
experienceBean.setTerminationDateTwo(experience.getTerminationDateTwo());
//To disply treasury challan details
TreasuryChallan treasuryChallan =new TreasuryChallan();
treasuryChallan=examinationDetailsService.readTreasuryChallanById(id);
treasuryChallanBean.settChallanAmount(treasuryChallan.getAmount());
treasuryChallanBean.settChallanBank(treasuryChallan.getBankName());
treasuryChallanBean.settChallanBankBranch(treasuryChallan.getBranchName());
treasuryChallanBean.settChallanDate(treasuryChallan.getDate());
treasuryChallanBean.settChallanName(treasuryChallan.getTreasuryName());
treasuryChallanBean.settChallanNo(treasuryChallan.getChallanNo());
}
//To save application status
public String saveFormStatus()
{
System.out.println("hiiii"+this.getComment());
formStatus.setStatus(getAction());
examinationDetailsService.saveFormStatus(formStatus);
/* FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, "Car Selected", "Id:");
FacesContext.getCurrentInstance().addMessage(null, message);*/
System.out.println("Hi page successfully save"+getAction());
this.setAction("");
//resetForm();
return "/pages/AdminView.xhtml";
}
// To Reset the Form
public String resetForm()
{
personalBean.setApplicantName(null);
personalBean.setCitizenshipReason(null);
personalBean.setCitizenshipValue(null);
personalBean.setDateofBirth(null);
personalBean.setFatherName(null);
personalBean.setNationality(null);
personalBean.setPermanentAddressLine1(null);
personalBean.setPermanentAddressLine2(null);
personalBean.setPermanentDistrict(null);
personalBean.setPermanentPinCode(null);
personalBean.setPermanentState(null);
personalBean.setPresentAddressLine1(null);
personalBean.setPresentAddressLine2(null);
personalBean.setPresentDistrict(null);
personalBean.setPresentState(null);
personalBean.setPresentPinCode(null);
personalBean.setCopyAddress(false);
educationalQualificationsBean.setDegreeCertificateNumber(null);
educationalQualificationsBean.setDegreeSchoolName(null);
educationalQualificationsBean.setHsCertificateNumber(null);
educationalQualificationsBean.setHslcCertificateNumber(null);
educationalQualificationsBean.setHslcSchoolName(null);
educationalQualificationsBean.setHsSchoolName(null);
educationalQualificationsBean.setPgCertificateNumber(null);
educationalQualificationsBean.setPgInstituteName(null);
educationalQualificationsBean.setTechnical(null);
educationalQualificationsBean.setTechnicalCertificateNumber(null);
experienceBean.setCommenceDateOne(null);
experienceBean.setCommenceDateThree(null);
experienceBean.setCommenceDateTwo(null);
experienceBean.setOrganisationNameOne(null);
experienceBean.setOrganisationNameThree(null);
experienceBean.setOrganisationNameTwo(null);
experienceBean.setTerminatiDateOne(null);
experienceBean.setTerminatiDateThree(null);
experienceBean.setTerminationDateTwo(null);
treasuryChallanBean.settChallanAmount(null);
treasuryChallanBean.settChallanBank(null);
treasuryChallanBean.settChallanBankBranch(null);
treasuryChallanBean.settChallanDate(null);
treasuryChallanBean.settChallanName(null);
treasuryChallanBean.settChallanNo(null);
treasuryChallanBean.settChallanPaid(null);
examination=null;
center=null;
language=null;
previousCertificate=null;
previousPermitNo=null;
previousCertificateNo=null;
otherStatePermitNo=null;
otherStateCertificateNo=null;
previousRegistrationDate=null;
elementaryPrinciples = false;
wiringForSystem = false;
dcApparatus = false;
acApparatus = false;
undergroundCable1100Volts = false;
undergroundCable11900Volts = false;
undergroundCable3300Volts = false;
installationExceding650Volts = false;
overHeadLiesupto650Volts = false;
overHeadLiesupto3300Volts = false;
overHeadLiesExceeding3300Volts = false;
minigInstallation = false;
wiringForSystemUpto650Volts = false;
electricIt = false;
electricSigns = false;
mediumPressure = false;
motorWiring = false;
ltOverHeadLines = false;
paperInsulatedCables = false;
highPressure = false;
htOverHeadLines = false;
otherInstallation = false;
examinationPart.clear();
return "/pages/examinationForm.xhtml";
}
}
正在添加负责我的 dilog 框的代码。我是 stackoverflow 的新手,所以我不能放置我的代码。我的 bean 在 session 范围内,方法读取 readFormStatus(id) 从数据库获取数据并在我的支持 bean 上设置数据。
请帮忙,提前致谢
最佳答案
我想你只需要添加
update=":data"
在显示对话框的按钮上。
您刷新了 bean 上的数据,但您从未告诉对话框使用这些刷新的数据进行更新。
关于java - primefaces 的数据模式不显示刷新数据形式的支持 bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26773629/
我的 processmaker 安装遇到了一些问题。我正在尝试使用本指南 [url]http://wiki.processmaker.com/index.php/ProcessMaker_Ubuntu
我正在使用 ShareKit。发送 SMS 消息使用 MFMessageComposeViewController,用户看到标题“文本”。我想将该标题更改为更能反射(reflect)实际可用内容的内容
我需要在我的一个针对 Gingerbread 的 Android 应用程序中使用操作栏和 fragment 的组合。所以我使用了 v7 支持库中的操作栏和 v4 支持库中的 fragment ,并使用
我明白为什么浏览器 vendor 不想帮助我阻止他们的 UI 线程。但是,我不明白为什么会有: Web Workers 中没有 sleep (2) 没有同步 WebSockets API 有一个syn
最近我的组织正在考虑使用 Docker。我们组使用的是cloudera CDH 5.1.2。 1) cloudera 是否与 Docker 容器兼容?2) docker 和cloudera 组合是否存
我正在尝试通过编译在 Mac 上安装 rsync 3.2.3。但是,我想安装所有功能。为此,它需要一些库,此处 ( https://download.samba.org/pub/rsync/INSTA
我一直在使用 PyDev 成功运行 nose 测试,并想试试 nose2。 所以我安装了它 pip install nose2 复制/粘贴来自 http://nose2.info/ 的示例代码进入名为
我想知道 LLVM 中是否有任何函数/方法可以在 LLVM IR 中添加 Open-MP 构造。 llvm-3.0 是否仍然支持 OpenMP 指令? 最佳答案 OpenMP 是一种高级语言扩展。因此
我对 CUDA 编程非常陌生。我正在浏览 SDK 附带的示例。我能够编译代码,但是当我运行它时,出现以下错误: "clock.cu(177) : CUDA Runtime API error 38:
RStudio 是用于 R 开发的出色 IDE。我想知道是否有任何方法可以很好地支持 HiDPI 分辨率? 我目前有 13 英寸显示器和 3200x1800 分辨率,甚至很难阅读 RStudio 选项
我正在寻找一种有助于为 Django 项目提供 RDF 支持的工具。 到目前为止,我发现了两个: django-rdf - 最后一次修改是在 4 年前,所以它看起来像是一个死项目。 djubby -
我刚刚尝试了一些 JS 核心原则,发现引擎评估链接的关系运算符而不会引发错误。相反,他们以我自己无法理解的方式进行评估。 console.log(1 4 > 3 > 2 > 1); //false,
我知道 etexteditor 和 vim/emacs。 是否有任何其他 Windows 编辑器支持类似 textmate 的片段(例如,您编写触发词,按 Tab,它更改为某些内容,再次按 Tab,它
我正在尝试找出验证给定集群的网络策略配置的最佳方法。 According to the documentation Network policies are implemented by the ne
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
Z3 会支持 AUFBV 吗? 对于以下脚本: (set-logic AUFBV) (declare-fun x () (_ BitVec 16)) (declare-const t (Array (
使用分部类编写 NUnit 测试的优缺点是什么? 我要开始了: 亲:可以测试私有(private)方法 缺点:TDD 不再可能了 还有什么? 最佳答案 缺点:要么您必须测试与您发布的版本不同的构建,要
它很容易(对于 90% 的 aop 特性)在没有任何语言本身支持的情况下做到这一点,就像大多数动态语言如 python 和 ruby 一样。然而,Dojo在 1.3.2 上直接支持它.最新版本发生
我在我的 android 应用程序中使用亚洲字符,我已经了解到某些字符无法显示,因为系统字体不支持它们。我查询了一个包含亚洲字符的数据库,并且经常检索到无法显示的标志。这些情况对我的应用程序来说通常不
你好,我想实现一个控件,我想在用户键入@字符时启用该控件,直到未填充运行文本中的空格为止,它应该显示用户列表,@符号后键入的文本应该显示基于键盘字符的建议,就像我们在上面看到的那样Twitter 或
我是一名优秀的程序员,十分优秀!