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
Jsp 表单提交和通过URL传递参数_Jsp_Jsf - Fatal编程技术网

Jsp 表单提交和通过URL传递参数

Jsp 表单提交和通过URL传递参数,jsp,jsf,Jsp,Jsf,我有一个窗口,用户可以在其中搜索数据库中的所有汽车,并能够编辑汽车的详细信息,当用户单击给定汽车上的编辑按钮(代码如下)时,将调用以下JavaScript打开一个新窗口: <!--EDIT BUTTON --> <h:commandLink value="" onclick="return CarEditCrud(this);" title="Edit Car"> &l

我有一个窗口,用户可以在其中搜索数据库中的所有汽车,并能够编辑汽车的详细信息,当用户单击给定汽车上的编辑按钮(代码如下)时,将调用以下JavaScript打开一个新窗口:

  <!--EDIT BUTTON -->  
  <h:commandLink value=""
        onclick="return CarEditCrud(this);" title="Edit Car">
        <t:graphicImage rendered="true" value="/imgs/edit.gif"
            styleClass="edit" />
        <f:param value="#{car.carPK}" name="carCode" />
    </h:commandLink>

 <!--FUNCTION TO OPEN NEW WINDOW TO EDIT CAR DETAIL -->  
 function CarEditCrud(val) {   
 ....    
 window.open("EditCarCrud.faces?carPK=" + pk);
 }
那很好。问题是,当用户按Submit时,Backbean具有
请求
作用域,我丢失了所有信息(carCode),因此URL现在是
localhost:80/jsp/EditCarCrud.faces

更新: 此外,还有
selectOneItem
,它具有

  ....
  valueChangeListener="#{carEditCurd.countrycodechange}"
  onchange="submit()"

我有没有办法让URL中的carCode保持原样,就像当初打开窗口时URL中的PK一样?

我假设您仍然在使用JSF 1.x

您需要通过
在后续表单中保留请求参数:

(是的,将丑陋的
嵌套为值,只是为了防止可能的XSS攻击)


请注意,
是不可用的,因为当表单验证失败时,它会丢失其值。

我假设您仍然在使用JSF 1.x

您需要通过
在后续表单中保留请求参数:

(是的,将丑陋的
嵌套为值,只是为了防止可能的XSS攻击)


请注意,
是不可用的,因为当表单验证失败时,它会丢失其值。

你说得对,这都是JSF 1.x。我现在正在尝试你的建议-在同一页(
CarEditCrud
)上有一个SelectOneItem,带有ValueChangeListener和
onchange=submit()。下拉列表与国家/地区关联,因此当用户更改下拉列表时,将提交表单,这意味着我将丢失信息
carCode
。当通过下拉菜单调用submit时,如何保留请求参数?是的,我爱你#BalusC。你说得对,这都是JSF 1.x。我现在正在尝试你的建议-在同一页(
CarEditCrud
)上有一个SelectOneItem,带有ValueChangeListener和
onchange=submit()。下拉列表与国家/地区关联,因此当用户更改下拉列表时,将提交表单,这意味着我将丢失信息
carCode
。当通过下拉菜单调用submit时,如何保留请求参数?是的,我爱你#BalusC。
  ....
  valueChangeListener="#{carEditCurd.countrycodechange}"
  onchange="submit()"
<h:commandLink value="Submit" ...>
    <f:param name="carCode" value="#{param.carCode}" />
</h:commandLink>
<input type="hidden" name="carCode" value="<h:outputText value="#{param.carCode}" />" />