我有一个鸡和蛋的情况:我有2个servlet,我想通过搜索来显示di对象,而不是通过显示servlet。
问题:有什么方法可以在jsp页面中显示refID,即使对象是空的?
(SearchDataManagerController.searchDMData(0, 0, 0);)
.问题:在页面加载时,我不一定要显示refId数据(servlet 1).如果它显示它的确定,但是当我点击搜索时,它应该显示数据(servlet 2).它在文本框中显示搜索值,但Servlet 1加载并重置了该值。
在jsp中使用 "Get"。
代码。
<% DataManager di = (DataManager) session.getAttribute("dmsearch"); %>
<input type="text" name="refId" id="refId" value ="<%= di.getiD() %>">
//Servlet display: 1:
DataManager dm;
String buttonClickStatus = request.getParameter("buttonClickStatus");
dm = SearchDataManagerController.searchDMData(0, 0, 0);
session.setAttribute("dmsearch", dm);
//Servlet search: 2:
dm = SearchDataManagerController.searchDMData(driverid, textid, weekid);
session.setAttribute("dmsearch", dm);
我不知道这是否能帮助你,但有表达式语言,你可以阅读它,它是如此有用,以避免在jsp页面中的java代码。你可以试试这个,但我不确定这是否是你想要的。
<input type="text" name="refId" id="refId" value ="${ empty di ? 1 : di.getId()}">
解决方案:
DataManager dm = new DataManager();
int textid=0;
int driverid=0;
int weekid=0;
if(request.getParameter("textid")!=null) {
textid= Integer.parseInt(request.getParameter("textid"));
}
if(request.getParameter("driverid")!=null) {
driverid= Integer.parseInt(request.getParameter("driverid"));
}
if(request.getParameter("weekid")!=null) {
weekid= Integer.parseInt(request.getParameter("weekid"));
}
Solution:
DataManager dm = new DataManager();
int textid=0;
int driverid=0;
int weekid=0;
if(request.getParameter("textid")!=null) {
textid= Integer.parseInt(request.getParameter("textid"));
}
if(request.getParameter("driverid")!=null) {
driverid= Integer.parseInt(request.getParameter("driverid"));
}
if(request.getParameter("weekid")!=null) {
weekid= Integer.parseInt(request.getParameter("weekid"));
}