有什么方法可以在 jsp 页面的文本框中显示值,即使对象为空?

Is there way I can show value in textbox in my jsp page even if object is null?

我有先有鸡还是先有蛋的情况: 我有 2 个 servlet,我希望 di 对象通过搜索显示,而不是通过显示 servlet

问题:

  1. 有什么方法可以在 jsp 页面中显示 refID,即使对象是 empty? 目前,在我的代码中,我添加了默认查询只是为了填充 "dmsearch" 所以 Jsp 不要给 错误(SearchDataManagerController.searchDMData(0, 0, 0);).
  2. 或任何其他解决方案,以便我的搜索值应该显示甚至显示 servlet 已加载?

问题: 在页面加载时,我不一定要显示 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"));
}