【发布时间】:2020-09-14 19:30:46
【问题描述】:
在我的项目中,我从 UI 获取值,传递给控制器和服务层。然后我做了DTO到域的转换,我觉得这是不必要的,也不是一个好的设计。
例如这是我的 JSP:
<form:form id="parcelCondemnationCaseDetailsForm"
modelAttribute="parcelCondemnationCaseDetailsDTO">
<form:hidden path="prclSeqNum" />
<form:hidden path="condemnationStatusCode" />
<form:hidden id="isMDOTVerifiedMoveDateAvailable"
path="mDOTVerifiedMoveDateAvailable" />
<div class="form-group">
<div class="row">
<div class="col-md-3">
<label for="finalDisposition">Final Disposition</label>
<form:select class="form-control dirty _enableSaveDisable"
id="finalDisposition" path="finalDisposition"
disabled="${agSecurityFinalDisabled}"
onchange="finalDispositionChange()">
<form:option value="" select="select">Select</form:option>
<form:option value="J">Judgement</form:option>
<form:option value="V">Jury Verdict</form:option>
<form:option value="S">Settlement</form:option>
<form:option value="O">Other</form:option>
</form:select>
</div>
<div class="col-md-3" id="finalDispositionDescriptionDiv"
style="display: none;">
<label for="finalDispositionDescription" class="req-label">Final
Disposition Description</label>
<form:input type='text' id="finalDispositionDescription"
class="form-control dirty _enableSaveDisable" aria-required="true"
path="finalDispositionDescription" maxlength="50"
disabled="${agSecurityFinalDisabled}" />
</div>
<div class="col-md-3">
<label for="finalDispositionDate">Final Disposition Date</label>
<form:input type='text' id="finalDispositionDate"
class="form-control lamdaDate dirty _addDate _pastPresent _enableSaveDisable"
path="finalDispositionDate" disabled="${agSecurityFinalDisabled}" />
</div>
<div class="col-md-3">
<label for="closedDate">Closed Date </label>
<form:input type='text' id="closedDate"
class="form-control lamdaDate dirty _addDate _pastPresent _enableSaveDisable"
path="closedDate" disabled="${agSecurityFinalDisabled}" />
</div>
</div></form:form>
这是我的控制器
@PostMapping("/saveCaseDetails.htm")
public @ResponseBody String saveCaseDetails(ParcelCondemnationCaseDetailsDTO parcelCondemnationCaseDetailsDTO,
ModelMap model) {
String responseMessage = "";
try {
parcelCondemnationCaseDetailsDTO = parcelCondemnationCaseDetailsService
.saveCaseDetails(parcelCondemnationCaseDetailsDTO);
responseMessage = "success";
} catch (Exception e) {
log.error(
"Error occured while saving Condemnation > Valuation at CondemnationValuationController.saveValuation",
e);
responseMessage = "Error occured while saving Case Details.";
}
return responseMessage;
}
和服务层。
public ParcelCondemnationCaseDetailsDTO saveCaseDetails(
ParcelCondemnationCaseDetailsDTO parcelCondemnationCaseDetailsDTO) {
ParcelCondemnation parcelCondemnation = ParcelCondemnationCaseDetailsMapper.INSTANCE
.getCaseDetails(parcelCondemnationCaseDetailsDTO);
parcelCondemnationRepository.save(parcelCondemnation);
在进行 DTO 到域的转换时,我没有看到我在添加任何价值。 那么,我的问题是有什么方法可以避免使用 DTO、映射器和额外的代码行?
感谢收看。
【问题讨论】:
标签: java spring spring-boot controller dto