Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Strutus 1中从单个窗体调用多个操作?_Javascript_Jsp_Struts 1 - Fatal编程技术网

Javascript 如何在Strutus 1中从单个窗体调用多个操作?

Javascript 如何在Strutus 1中从单个窗体调用多个操作?,javascript,jsp,struts-1,Javascript,Jsp,Struts 1,需要从单个JSP调用多个操作。我尝试了几种方法,但并不符合标准,请帮助我在不使用ajax的情况下调用多个操作 <html:form action="inspathNew" name="personInsuranceForm" method="post" scope="request"> <a id="addPatientButton" class="ovalbutton" href="javascript:void(0);"> <span>

需要从单个JSP调用多个操作。我尝试了几种方法,但并不符合标准,请帮助我在不使用ajax的情况下调用多个操作

<html:form action="inspathNew" name="personInsuranceForm" method="post" scope="request">
    <a id="addPatientButton" class="ovalbutton" href="javascript:void(0);"> 
      <span>
          <html:button property="addPatient" onclick="javascript:AddPatient();" /> 
     </span>
    </a> 
  </html>

function AddPatient() {
    var jobIdVal = document.forms[0].jobId.value;
    var batchId = document.forms[0].batchId.value;
    var batchCode = document.forms[0].batchCode.value;
    var batchCount = document.forms[0].batchCount.value;
    var epiCount = document.forms[0].epiCount.value;
    var docNum = document.forms[0].docNum.value;
    var entryDate = document.forms[0].entryDate.value;
    var admitDate = document.forms[0].admitDate.value;
    var disDate = document.forms[0].disDate.value;
    var epiMode = document.forms[0].epiMode.value;
    var episodeId = document.forms[0].episodeIdVal.value;
    var epiCntVal = document.forms[0].epiCntVal.value;
    var epiDRN = document.forms[0].epiDRN.value;
    var batchScanStatus = document.forms[0].batchScanStatus.value;
    // bug #1569
    var patLastName = document.forms[0].plname.value.toUpperCase();
    var patFirstName = document.forms[0].pfname.value.toUpperCase();
    var patSSN = document.forms[0].pssn.value;
    var PatMrn = document.forms[0].mrn.value;
    //bug 2304 c#90
<%  String emrEpisodeId = request.getParameter("emrEpisodeId");
    if (emrEpisodeId != null && emrEpisodeId.length() > 0) {%>
        // to create new person from emrEpisode detail
        window.location.href = "<%=request.getContextPath()%>/action/personInfoNew?action=<%=com.abc.dataentry.person.action.PersonAction.ACTION_CREATE_PERSON_FROM_EMR%>&<%=com.abc.dataentry.person.action.PersonAction.PARAM_EMR_EPISODE_ID%>=" + <%=emrEpisodeId%> + "&<%=com.abc.dataentry.person.action.PersonAction.PARAM_JOB_ID%>="+ document.forms[0]['jobId'].value+"&patFirstName="+patFirstName+"&patLastName="+patLastName+"&patSSN="+patSSN;
<%  } else {%> 
        var url = "<%=request.getContextPath()%>/action/personInfoNew?action=newPatient&episodeId=<%=request.getParameter("episodeId")%>&name=<%=request.getParameter("name")%>&patientId=<%=request.getParameter("patientId")%>&jobId="+jobIdVal+"&batchId="+batchId+"&batchCode="+batchCode+"&batchCount="+batchCount+"&epiCount="+epiCount+"&epiMode="+epiMode+"&episodeIdVal="+episodeId+"&epiCntVal="+epiCntVal;
        //bug # 2598 - view only person info
        var viewMode = "<%=IConstants.PARAM_VIEWMODE%>=<%=IConstants.MODE_VIEWONLY%>";
        if(${showPageEditableMode}){
            viewMode = "<%=IConstants.PARAM_VIEWMODE%>=<%=IConstants.MODE_EDITABLE%>";
        }
        window.location.href="<%=request.getContextPath()%>/action/personInfoNew?"+viewMode+"&action=newPatient&episodeId=<%=request.getParameter("episodeId")%>&name=<%=request.getParameter("name")%>&patientId=<%=request.getParameter("patientId")%>&jobId="+jobIdVal+"&batchId="+batchId+"&batchCode="+batchCode+"&batchCount="+batchCount+"&epiCount="+epiCount+"&docNum="+docNum+"&entryDate="+entryDate+"&admitDate="+admitDate+"&disDate="+disDate+"&epiMode="+epiMode+"&episodeIdVal="+episodeId+"&epiCntVal="+epiCntVal+"&batchScanStatus="+batchScanStatus+"&epiDRN="+epiDRN+"&patFirstName="+patFirstName+"&patLastName="+patLastName+"&patSSN="+patSSN+"&mrnValue="+PatMrn;
<%  }%>
}

函数AddPatient(){
var jobIdVal=document.forms[0].jobId.value;
var batchId=document.forms[0].batchId.value;
var batchCode=document.forms[0].batchCode.value;
var batchCount=document.forms[0].batchCount.value;
var epiCount=document.forms[0].epiCount.value;
var docNum=document.forms[0].docNum.value;
var entryDate=document.forms[0]。entryDate.value;
var admitDate=document.forms[0].admitDate.value;
var disDate=document.forms[0].disDate.value;
var epiMode=document.forms[0].epiMode.value;
var epiodeid=document.forms[0].epiodeidval.value;
var epiCntVal=document.forms[0].epiCntVal.value;
var epirn=document.forms[0].epirn.value;
var batchScanStatus=document.forms[0]。batchScanStatus.value;
//臭虫1569
var patLastName=document.forms[0].plname.value.toUpperCase();
var patFirstName=document.forms[0].pfname.value.toUpperCase();
var patSSN=document.forms[0].pssn.value;
var PatMrn=document.forms[0].mrn.value;
//bug 2304 c#90
0) {%>
//从emrEpisode detail创建新人员的步骤
window.location.href=“/action/personInfoNew?action=&=“++”&=“+document.forms[0]['jobId'].value+”&patFirstName=“+patFirstName+”&patLastName=“+patLastName+”&patSSN=“+patSSN;
var url=“/action/personinfo new?action=newPatient&epiodeid=&name=&patientId=&jobId=“+jobIdVal+”&batchId=“+batchCode+”&batchCode=“+batchCode+”&batchCount=“+batchCount+”&epiCount=“+epiMode+”&epiodeidval=“+epiodeid+”&epicontval=“+epiCntVal;”;
//错误#2598-仅查看个人信息
var viewMode=“=”;
if(${showPageEditableMode}){
viewMode=“=”;
}
window.location.href=“/action/personinfo新?”+viewMode+”&action=newPatient&epiodeid=&name=&patientId=&jobId=“+jobIdVal+”&batchId=“+batchId+”&batchCode=“+batchCode+”&batchCount=“+batchCount+”&epiodecount=“+epiodenum+”&docNum=“+docNum+”&entryDate=“+entryDate+”&admitDate=“+admitDate=+admitDate+”&epiMode=“+disDate+”&epiodeval=+epiodemode+”&epiodeval=“+epioded+”+“&epiCntVal=“+epiCntVal+”&batchScanStatus=“+batchScanStatus+”&epirn=“+epirn+”&patFirstName=“+patFirstName+”&patLastName=“+patLastName+”&patSSN=“+patSSN+”&mrnValue=“+PatMrn;
}
以及如何使用windows.href调用另一个操作


注意:参数应该通过URL传递,请建议不要这样做。web浏览器不是这样工作的

如果开始表单提交,然后离开页面,最终结果有些不确定;提交可能已经开始,也可能没有

这听起来更像是一个XY问题:你真正想要的最终结果是什么

如果您只需要在表单提交上运行多个操作的处理步骤,那么应该从操作中提取该逻辑(应该已经是这样做的),并创建一个新端点(如果您仍然需要原始端点),该端点调用当前两个操作的逻辑

在显示的(凌乱的!)代码片段中,您并没有调用两个操作,而是根据是否有插曲ID调用两个操作中的一个,所以甚至不清楚您在问什么

无关:您在视图层中强加了太多的逻辑,代码表明您已经因此受到了影响。这只会变得更糟。从使用的框架和代码样式/命名约定来看,这显然是一个遗留系统


您开始感到悲伤。您最好拆分JSP以提取业务逻辑,使用不同的JSP(以及片段或模板)来拆分各种用例,并开始在后端添加API/JSON端点,至少使用Ajax,或者开始引入组件(React、Vue等).

我的问题是如何调用href而不在url@user2302158您要么提交表单,要么提出Ajax请求——这是一个浏览器,您没有很多其他选项。