使用函数后如何维护url?
我的url有问题。 首先,我必须显示图像和图像的信息 但是我需要点击一个按钮来显示我的信息 这是显示图像和未显示信息的链接。 portal/faces/chicken.jsp?image_id=1 所以,在我点击按钮之后。它变成portal/faces/chicken.jsp 检索图像的代码需要url image_id=1,因为我正在使用 request.getParameter(“image_id”)显示图像 这是jsf中我的按钮的代码:使用函数后如何维护url?,url,jsf,navigation,managed-bean,faces-config,Url,Jsf,Navigation,Managed Bean,Faces Config,我的url有问题。 首先,我必须显示图像和图像的信息 但是我需要点击一个按钮来显示我的信息 这是显示图像和未显示信息的链接。 portal/faces/chicken.jsp?image_id=1 所以,在我点击按钮之后。它变成portal/faces/chicken.jsp 检索图像的代码需要url image_id=1,因为我正在使用 request.getParameter(“image_id”)显示图像 这是jsf中我的按钮的代码: <h:commandButton action=
<h:commandButton action="#{bean1.checkwork}" value="Get Info" type="submit">
<f:param name="id" value="#{param['image_id']}"></f:param>
</h:commandButton>
那么,它与jsf、托管bean或faces-config.xml有什么关系吗?
有人知道我的代码有什么问题吗?当你按下按钮时,它确实不会再出现在URL中,因为命令按钮发送一个POST请求,请求体中的参数不是请求URL,而是请求URL。因此请求参数是绝对可用的。使用HTTP流量检查器(按Chrome/IE9/Firebug中的F12键),您可以看到它 您的具体问题是由于您为
分配了错误的名称而导致的
<f:param name="id" value="#{param['image_id']}"></f:param>
至于你关于在使用“函数”(“函数”是一个错误的术语,你的意思可能是“方法”,“操作方法”)之后维护URL的具体问题,只需使用GET而不是POST。使用
而不是
。您只需更改代码即可调用与目标视图关联的bean的(post)构造函数或
中的实际操作
与具体问题无关有更好的方法在你的后盾中抓住它
String imageId = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("image_id");
在JSF代码中导入javax.servlet.*
imports就是一种迹象,表明您的工作方式可能很笨拙。请注意,请求
是从不空的(否则JSF代码将如何执行?),因此请求
上的空检查也是完全不必要的
另一种方法是使用@ManagedProperty
:
@ManagedProperty("#{param.image_id}")
private String imageId; // +setter
不过,这只适用于请求范围的bean。为什么不使用ajax呈现图像信息呢?我以前没有学过使用ajax,因为这实际上是基于netbeans的学校作业。Im使用tomcat服务器、jdbc连接、mysql、托管bean、servlet、jsp和jsf。所以是的/
<f:param name="image_id" value="#{param['image_id']}" />
String imageId = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("image_id");
@ManagedProperty("#{param.image_id}")
private String imageId; // +setter