本文探讨如何在JavaScript中通过Swing组件实现数据入库前的用户确认机制,解决直接执行数据库插入的问题。同时介绍了通过模拟GET请求,利用window.location.href传递多个页面参数至另一页面的具体实现方法,包含关键代码逻辑与参数拼接细节。
Swing组件控制数据入库的实现问题
最终目标是希望在JavaScript环境中使用Swing组件来构建一个包含“确定”和“取消”按钮的交互界面,以此控制功能是否执行。然而在实际运行中发现,每次操作都会直接触发数据库插入逻辑,无法实现预期的控制效果。为了解决这一问题,需要参考后续提供的详细代码进行分析。
相关代码实现如下:
<%
boolean foo=false;
if (((theqingjiadays<3)&&(thetiqiandays>=1))||((theqingjiadays<10)
&&(theqingjiadays>=3)&&(thetiqiandays>=3))||((theqingjiadays>=10)&&(thetiqiandays>=7))){
foo=true;
}else{
//未按规定提前请假,是否继续
%>
<script>
var select=confirm('未按规定提前请假,是否继续?');
if(select==true){
foo=true;
}
if(select==false){
foo=false;
window.location.href="qingjiaquxiao.jsp?id=<%=qj.getId()%>";
}
</script> 期望将该脚本替换为Swing窗口,通过用户点击确定或取消来决定是否执行后续操作。由于当前机制总是优先执行<% %>内的代码,导致数据直接插入数据库,失去了控制环节。
涉及数据库插入操作的代码如下:
<%
}
}
//插入数据库
if(foo==true){
try
{ 插入语句
相关代码片段如下:
qingjiaDAO.addQingJiaInfo(qj);
qingjiaDAO.addQingJiaMingxi(qjmingxi);
qingjiaDAO.updateQingJiaInfo(qj);
}
catch(InfrastructureException ie){
out.println(ie.toString());
}
finally{
HibernateUtil.commitTransaction();
HibernateUtil.closeSession();
}
} Swing控制与URL参数传递方案
%>需要一段Java中的Swing代码来控制该模块,具体应如何实现?此外,还希望了解能否通过脚本将当前页面的参数通过window.location.href传递到另一个页面?
模拟GET提交与参数传递实现
随后在网上查阅资料,得知若要实现上述参数传递,可以模拟GET提交方式,在目标页面接收链接后解析获取参数。
按照此思路尝试后并未成功,主要难点在于不知如何具体操作。但最终通过自我排查解决了该问题,原因在于传递的参数数量过多,因此对部分细节进行了调整,具体修改如下:
相关代码实现如下:
window.location.href="qingjiaapplysave.jsp?qingjiatypeid=<
%=request.getParameter("qingjiatypeid")%>
&
figure=<
%=request.getParameter("figure")%>
&
qingjiastartdate1=<
%=request.getParameter("qingjiastartdate1")%>
&
qingjiaenddate1=<
%=request.getParameter("qingjiaenddate1")%>
&
reason=<
%=request.getParameter("reason")%>
&
startdaterange1=<
%=request.getParameter("startdaterange1")%>
&
enddaterange1=<
%=request.getParameter("enddaterange1")%>";