0

動的画像の URL からパラメーターを渡して struts2 アクションを呼び出しています

<img src="<s:url action='ImageAction?imageId=logo.jpg' />"/>

これにより、アクションは正しく呼び出されますが、パラメーターimageId=logo.jpgがアクション クラスに渡されません。

しかし、ブラウザーの URL から手動でパラメーターを渡すと、パラメーターが Java ページに正しく表示されます。http://localhost:8080/mypoject/jspHomepage/bookstransaction/secure/ImageAction?imageId=logo.jpg

この理由は何でしょうか?私を助けてください。

struts.xml

          `
    `<package name="Image"   extends="struts-default,json-default"> 
            <result-types>
        <result-type name="imageResult"
            class="v.esoft.actions.changetheme.CustomImageBytesResult" />
        </result-types>
          <action name="updatethemeimageform"  class="v.esoft.actions.changetheme.ThemedetailsEditAction" method="updateThemesImage">  
            <result name="success" type="json"/>
            <result name="input" type="json"/>     
        </action>  
       <action name="Display" class="v.esoft.actions.changetheme.DisplayAction">
            <result name="success" type="json"/>
      </action> 
      <action name="ImageAction" class="v.esoft.actions.changetheme.ImageAction">
        <result name="success" type="imageResult">
        </result>
     </action> 
         </package>`

ImageAction.java

public class ImageAction extends ActionSupport implements ServletRequestAware {

byte[] imageInByte = null;
String imageId;

private HttpServletRequest servletRequest;

public String getImageId() {
    return imageId;
}

public void setImageId(String imageId) {
    this.imageId = imageId;
}

public ImageAction() {
    System.out.println("ImageAction");
}

public String execute() {
    return SUCCESS;
}

public byte[] getCustomImageInBytes() {
        System.out.println("imageId" + imageId);
    }
}
4

1 に答える 1

1

以下はテストされていません。

パラメータを追加するには、param タグを使用します。

<s:url package="Image" action="ImageAction" var="myUrl">
   <s:parm name="imageId" value="'logo.jpg'"/>
</s:url>

<img src="<s:property value="#myUrl"/>"/>

注: 最終行では myUrl で十分 (# なし) であると思われますが、現時点では覚えていません。

于 2012-12-18T00:59:23.427 に答える