我想要召唤一个存在于与我的战争不同的战争中的Servlet。当用户单击按钮时,我们需要调用servlet的post方法。为了实现这一点,我确实看到了一个略有不同的现有示例,但在这种情况下有效。
我正在使用jsf,所以在jsp中有一个h:表单,里面有另一个html表单。以下是代码:
<h:form>
<div id="gform" class="column span-20 append-1">
<h:outputText value="Text." /><br/><br/>
<h:commandLink id="addPaymentButton" styleClass="button" onclick='autorenew();return false;'> <span><h:outputText value="Payment Option"/></span> </h:commandLink>
<a id="noThanksButton" href="#"><span><h:outputText value="No Thanks"/></span></a><br/><br/><br/>
<h:outputText style="color:grey" value="Some text" />
<div> </div>
</div>
<form id="hiddenSubmit" method="post" action="https://localhost.myapp.com/myapp/LoginRouter" >
<input type="hidden" name="redirectUrl" value="/myapp/customers/addNewSavedCCInfo.faces"/>
<input type="hidden" name="jump_message" value="IAmJumpingToCC"/>
<input type="hidden" name="jump_url" value="/premiumServices/myPage.htm"/>
<input id="hiddenSubmitButton" type="submit" name="submit" style="display: none" value='' />
</form>
</h:form>
<script language="javascript">
function autorenew(){
window.alert('In js fnt');
document.hiddenSubmit.getElementById('hiddenSubmitButton').click();
window.alert('In js fnt COMPLETE');
return false;
}
因此,当单击该按钮时,将执行javascript,将表单提交给servlet。但是我可以在firebug中看到我需要提交的第二种形式没有出现。我不确定如何在不同的战争中调用servlet类的post方法。欢迎任何想法,我真的被卡住了!
感谢。
答案 0 :(得分:1)
根据HTML规范,禁止嵌套<form>
元素。 (mis)行为取决于浏览器。有些浏览器会发送所有参数,有些浏览器只会发送父表单的数据,其他浏览器则不会发送任何内容。
你想在这里有一个表格。您可以完全用普通的HTML <h:form>
替换<form>
,并将所需的action
指向相关的servlet。