0

嗨,我是 java 和 jsp 的新手。我无法从 jsp 中获得我的价值。

这是我的代码。这些是用jsp制作的。

<h:commandButton action="#{bean1.checkwork}" value="Get Info" type="submit">
   <f:param name="id" value="#{param['image_id']}" /f:param>
</h:commandButton>

这是我的方法的托管 bean 代码

public String checkwork(){

    HttpServletRequest request = (HttpServletRequest)FacesContext.
        getCurrentInstance().getExternalContext().getRequest();
    String image_ID = null;
    if(request!=null){

        image_ID = request.getParameter("image_id");

        images(image_ID);
        student(matric);

    } else {
        System.out.println("fail");                    
        return "successful";
    }

很抱歉,也许我添加了我的 faces-config.xml 数据,也许你们会知道发生了什么。因为我添加了你给的代码,它给了我空值。面孔.config.xml

<navigation-rule>
    <from-view-id>/MainPage.jsp</from-view-id>
    <navigation-case>
        <from-action>#{bean1.checkwork}</from-action>
        <from-outcome>successful</from-outcome>
        <to-view-id>chicken.jsp?image_id=#{param['image_id']}</to-view-id>
    </navigation-case>
</navigation-rule>
4

2 回答 2

2

<f:param为此

<h:commandButton action="#{bean1.work}" value="Get Info" type="submit">
    <f:param name="id" value="#{param['id']}"></f:param>
</h:commandButton>

. . .

work方法代码

HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
String id= null;
if(request!=null){
    id= request.getParameter("id");

}
于 2012-09-06T08:12:10.283 回答
1

我想你正在使用 JSF。如果是这样,请将 JSF 标记添加到您的问题中。如果没有,你可以忽略我的回答。

当你调用一个动作时,你不需要用请求数据参数化它。相反,您可以通过以下方式访问所有请求参数FacesContext

public String checkwork() {
    ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext();
    Map<String,String> requestParams = ec.getRequestParameterMap();
    final String id = requestParams.get("id");
    ...

调用它使用

<h:commandButton action="#{bean1.checkwork}" value="Get info" />
于 2012-09-06T07:41:09.813 回答