从Java JSP视图访问Bean属性无效
我有一个具有以下属性的对象:从Java JSP视图访问Bean属性无效,java,html,jsp,jakarta-ee,model-view-controller,Java,Html,Jsp,Jakarta Ee,Model View Controller,我有一个具有以下属性的对象: public final class CaseNote { private final Long caseNoteId; private final Long subGroupId; private final String title; private final String caseNoteTypeCode; private final Date contactDate; private final Date
public final class CaseNote {
private final Long caseNoteId;
private final Long subGroupId;
private final String title;
private final String caseNoteTypeCode;
private final Date contactDate;
private final Date completedDateTime;
private final Long personVisitId;
private final Date createdDateTime;
private final Long createdByWorkerId;
private final Long createdByTeamId;
private final List<CaseNoteDetailsDTO> noteDetails = new ArrayList<CaseNoteDetailsDTO>();
private final List<GroupMemberDetailsDTO> selectedMembers = new ArrayList<GroupMemberDetailsDTO>();
private final ReferenceProvider referenceProvider;
private final Date timeOutDate;
public CaseNote(final CaseNotesDTO caseNoteDto, final List<CaseNoteDetailsDTO> noteDetails,
final List<GroupMemberDetailsDTO> selectedMembers, final ReferenceProvider referenceProvider) {
this.caseNoteId = caseNoteDto.getCaseNoteId();
this.subGroupId = caseNoteDto.getSubGroupId();
this.title = caseNoteDto.getTitle();
this.caseNoteTypeCode = caseNoteDto.getCaseNoteTypeCode();
this.contactDate = caseNoteDto.getContactDateTime();
this.completedDateTime = caseNoteDto.getCompletedDateTime();
this.personVisitId = caseNoteDto.getPersonVisitId();
this.createdDateTime = caseNoteDto.getCreatedDateTime();
this.createdByWorkerId = caseNoteDto.getCreatedByWorkerId();
this.createdByTeamId = caseNoteDto.getCreatedByTeamId();
this.timeOutDate = caseNoteDto.getTimeOutDate();
this.noteDetails.clear();
this.selectedMembers.clear();
this.noteDetails.addAll(noteDetails);
Collections.sort(this.noteDetails, new CaseNoteDetailCreatedDateComparator());
this.selectedMembers.addAll(selectedMembers);
this.referenceProvider = referenceProvider;
}
private class CaseNoteDetailCreatedDateComparator implements Comparator<CaseNoteDetailsDTO> {
@Override
public int compare(final CaseNoteDetailsDTO firstCaseNoteDetail, final CaseNoteDetailsDTO secondCaseNoteDetail) {
return firstCaseNoteDetail.getCreatedDateTime().compareTo(secondCaseNoteDetail.getCreatedDateTime());
}
}
public Long getCaseNoteId() {
return caseNoteId;
}
public Long getSubGroupId() {
return subGroupId;
}
public String getTitle() {
return title;
}
public String getCaseNoteTypeCode() {
return caseNoteTypeCode;
}
public Date getContactDate() {
return contactDate;
}
public Date getCompletedDateTime() {
return completedDateTime;
}
public Long getPersonVisitId() {
return personVisitId;
}
public Date getCreatedDateTime() {
return createdDateTime;
}
public Long getCreatedByWorkerId() {
return createdByWorkerId;
}
public Long getCreatedByTeamId() {
return createdByTeamId;
}
public List<CaseNoteDetailsDTO> getNoteDetails() {
return Collections.unmodifiableList(noteDetails);
}
public List<GroupMemberDetailsDTO> getSelectedMembers() {
return Collections.unmodifiableList(selectedMembers);
}
public boolean isSignificant() {
boolean significantEvent = false;
for (final CaseNoteDetailsDTO detail : this.getNoteDetails()) {
significantEvent = significantEvent || detail.isSignificantEvent();
}
return significantEvent;
}
public String getCaseNoteTypeDescription() {
return referenceProvider.provide(ReferenceDomain.CASENOTE_TYPE, getCaseNoteTypeCode());
}
public CaseNoteDetailsDTO getRootNoteDetails() {
validateCaseNoteDetailsExists();
return getNoteDetails().get(0);
}
public List<CaseNoteDetailsDTO> getAppendments() {
validateCaseNoteDetailsExists();
return getNoteDetails().subList(1, getNoteDetails().size());
}
private void validateCaseNoteDetailsExists() {
if (getNoteDetails() == null || getNoteDetails().isEmpty()) {
throw new IllegalStateException("No case note details found");
}
}
public List<String> getMemberNames() {
final List<String> memberNames = new ArrayList<String>();
final List<GroupMemberDetailsDTO> selectedMembers = getSelectedMembers();
for (final GroupMemberDetailsDTO memberDetails : selectedMembers) {
memberNames.add(memberDetails.getName());
}
return memberNames;
}
public Date getTimeOutDate() {
return timeOutDate;
}
public boolean isTimedOut() {
return completedDateTime == null && new Date().after(this.timeOutDate);
}
}
公开期末课程案例说明{
私人最终长caseNoteId;
私有最终长子ID;
私人最终字符串标题;
私有最终字符串caseNoteTypeCode;
私人最终日期;
私人最终日期completedDateTime;
私人终场长传;
私有最终日期createdDateTime;
私有最终Long createdByWorkerId;
私有最终Long CreatedByteMid;
private final List noteDetails=new ArrayList();
私有最终列表selectedMembers=new ArrayList();
私人最终参考提供人参考提供人;
私人最终日期超时日期;
公开案例说明(最终案例说明至案例说明,最终列表说明详情,
最终选定成员列表,最终参考提供程序(参考提供程序){
this.caseNoteId=caseNoteDto.getCaseNoteId();
this.subGroupId=caseNoteDto.getSubGroupId();
this.title=caseNoteDto.getTitle();
this.caseNoteTypeCode=caseNoteDto.getCaseNoteTypeCode();
this.contactDate=caseNoteDto.getContactDateTime();
this.completedDateTime=caseNoteDto.getCompletedDateTime();
this.personVisitId=caseNoteDto.getPersonVisitId();
this.createdDateTime=caseNoteDto.getCreatedDateTime();
this.createdByWorkerId=caseNoteDto.getCreatedByWorkerId();
this.createdByTeamId=caseNoteDto.getCreatedByTeamId();
this.timeOutDate=caseNoteDto.getTimeOutDate();
this.noteDetails.clear();
这是.selectedMembers.clear();
this.noteDetails.addAll(noteDetails);
Collections.sort(this.noteDetails,new CaseNoteDetailCreatedDateComparator());
this.selectedMembers.addAll(selectedMembers);
this.referenceProvider=referenceProvider;
}
私有类CaseNoteDetailCreatedDataComparator实现Comparator{
@凌驾
公共整数比较(最终案例说明详细信息到第一个案例说明详细信息,最终案例说明详细信息到第二个案例说明详细信息){
返回firstCaseNoteDetail.getCreatedDateTime().compareTo(secondCaseNoteDetail.getCreatedDateTime());
}
}
公共长getCaseNoteId(){
返回caseNoteId;
}
公共长GetSubjectId(){
返回子ID;
}
公共字符串getTitle(){
返回标题;
}
公共字符串getCaseNoteTypeCode(){
返回caseNoteTypeCode;
}
公共日期getContactDate(){
返回联系日期;
}
公共日期getCompletedDateTime(){
返回completedDateTime;
}
公共长getPersonVisitId(){
返回人员Visitid;
}
公共日期getCreatedDateTime(){
返回createdDateTime;
}
公共长getCreatedByWorkerId(){
返回createdByWorkerId;
}
公共长getCreatedByteMid(){
返回CreatedByteMid;
}
公共列表getNoteDetails(){
返回集合。不可修改列表(备注详细信息);
}
公共列表getSelectedMembers(){
返回集合。不可修改列表(selectedMembers);
}
公共布尔值不重要(){
布尔有效事件=假;
对于(最终案例NoteDetailsTo-detail:this.getNoteDetails()){
有效事件=有效事件| |细节。isSignificantEvent();
}
返回重要事件;
}
公共字符串getCaseNoteTypeDescription(){
返回referenceProvider.provide(ReferenceDomain.CASENOTE_TYPE,getCaseNoteTypeCode());
}
public CaseNoteDetailsTo getRootNoteDetails(){
验证SenoteDetailsSexists();
返回getNoteDetails().get(0);
}
公共列表getAppendments(){
验证SenoteDetailsSexists();
返回getNoteDetails().subList(1,getNoteDetails().size());
}
私人无效验证SenoteDetailsSexists(){
如果(getNoteDetails()==null | | getNoteDetails().isEmpty()){
抛出新的IllegalStateException(“未找到案例注释详细信息”);
}
}
公共列表getMemberNames(){
final List memberNames=new ArrayList();
最终列表selectedMembers=getSelectedMembers();
对于(最终组成员详细信息至成员详细信息:selectedMembers){
添加(memberDetails.getName());
}
返回成员名称;
}
公共日期getTimeOutDate(){
返回超时日期;
}
公共布尔值输出(){
return completedDateTime==null&&new Date().after(this.timeOutDate);
}
}
从JSP文件中,我想打印属性“createdWorkerId”,但它不起作用。我试着打印标题,但没有用createdWorkerId。该行如下所示:
<span class="highlighted"><%=noteClassDescription%>: <c:out value="${casenote.createdByWorkerId}"/> </span>
:
我应该先将createdWorkerId解析为字符串,还是问题是其他的?谢谢你的帮助
谢谢。您是否在any for JSP中存储了
casenote
?您是否检查了createdByWorkerId是否为空,或者是否在JSP上使用不为空
。可能控制器中的对象没有任何值,这就是为什么它为空的原因我尝试了您的if,但不起作用。即使这样,也是非常有用的,谢谢!我没有使用变量作用域。成员createdByWorkerId
是私有的。它不应该是casenote.getCreatedByWorkerId()
?