0
我有一個觀點,我想用來顯示從兩個給定日期範圍內選擇患者遇到的日期startDate結束日期並顯示在同一頁上的結果,但是,我想也可以在第一次加載頁面時在同一頁面上顯示所有結果。 當我從我的方法中的請求中獲取參數時,第一次加載頁面時,它會拋出一個空的params異常,因爲這些參數的參數startDate和End Date在第一次加載頁面時爲空時間......這是我的看法從JSP視圖處理空參數到控制器
<%@ include file="/WEB-INF/template/include.jsp"%>
<%@ include file="/WEB-INF/template/header.jsp"%>
<%@ include file="template/localHeader.jsp"%>
<p>Hello ${user.systemId}!Add Interface Implementation Code Here</p>
<form action="/module/practicalexercise/manage" method="GET">
From Date:<openmrs_tag:dateField formFieldName="startDate" startValue=""/>
To Date:<openmrs_tag:dateField formFieldName="endDate" startValue="" />
<br/><input type="submit" value="Submit">
</form>
<br/>
<b>Total :${resultCount}</b>
<br/>
<b>EncounterType Breakdown</b>
<table>
<tr>
<th>#</th><th>Encounter Type</th><th>Total</th></tr>
<c:forEach items="${EncTypeMap}" var="entry" varStatus="var">
<tr><td><c:out value="${var.count}" /></td><td>${entry.key}</td> <td> ${entry.value}</td> </tr>
</c:forEach>
</table>
<%@ include file="/WEB-INF/template/footer.jsp"%>
這裏是我的控制器
package org.openmrs.module.practicalexercise.web.controller;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.openmrs.EncounterType;
import org.openmrs.Encounter;
import org.openmrs.api.EncounterService;
import org.openmrs.api.context.Context;
import org.springframework.stereotype.Controller;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
public class PracticalExerciseManageController {
protected final Log log = LogFactory.getLog(getClass());
@RequestMapping(value = "/module/practicalexercise/manage", method = RequestMethod.GET)
public void manage(@RequestParam("startDate") String startDate,@RequestParam("endDate") String endDate,ModelMap model) {
EncounterService encounterService = Context.getEncounterService();
SimpleDateFormat format = new SimpleDateFormat("dd MM YYYY ");
Date from=null;
Date to=null;
try {
from=format.parse(startDate) ;
to = format.parse(endDate);
} catch (ParseException e) {
e.printStackTrace();
}
List<Encounter> encounters = encounterService.getEncounters(null, null,
from, to, null, null, null,true);
List<EncounterType> encounterTypes = encounterService.getAllEncounterTypes();
Map<String,Integer> countMap=new HashMap<String,Integer>();
for(EncounterType encType:encounterTypes){
int encTypeCount=0;
for(Encounter encounter:encounters){
if(encounter.getEncounterType().getId().equals(encType.getId()))
encTypeCount++;
}
countMap.put(encType.getName(), encTypeCount);
}
model.addAttribute("user", Context.getAuthenticatedUser());
model.addAttribute("EncTypeMap", countMap);
model.addAttribute("size", countMap.size());
model.addAttribute("resultCount",encounters.size());
}
}
感謝它只是工作,...但我仍然不能回到同一個頁面後,我點擊提交...因爲它是一個獲取請求它將附加參數到URL的url部分匹配使用的映射控制器,但添加一個查詢字符串...映射網址是/模塊/ practicalexercise /管理和提交我在瀏覽器中獲取此URL http:// localhost:8082/module/practicalexercise /管理?startDate = 27 %2F10%2F2013&endDate = 07%2F11%2F2013 – Eliethesaiyan
如何返回到同一頁面? – cy3er