2011年11月9日 星期三

WSDL2Java 用法


1. 首先必須先下載地三方套件axis.zip,可到下面網址載
   http://www.giveawayoftheday.com/download+axis.zip/
   將 axis.zip 解壓縮至個人電腦中的某一位置 (如 C:\)
   解壓縮後在 C:\ 會出現一個 axis 目錄


2. 新增環境變數 (我的電腦按右鍵 --> 內容 --> 進階 --> 環境變數)
   a.
   AXIS_HOME=C:\axis  (即剛才解壓縮之目錄)

   b.
   AXIS_CLASSPATH=%AXIS_HOME%\WEB-INF\classes;%AXIS_HOME%\WEB-INF\lib\axis.jar;%AXIS_HOME%\WEB-INF\lib\axis-ant.jar;%AXIS_HOME%\WEB-INF\lib\commons-discovery-0.2.jar;%AXIS_HOME%\WEB-INF\lib\commons-logging-1.0.4.jar;%AXIS_HOME%\WEB-INF\lib\jaxrpc.jar;%AXIS_HOME%\WEB-INF\lib\log4j-1.2.8.jar;%AXIS_HOME%\WEB-INF\lib\saaj.jar;%AXIS_HOME%\WEB-INF\lib\wsdl4j-1.5.1.jar;%AXIS_HOME%\WEB-INF\lib\activation.jar;%AXIS_HOME%\WEB-INF\lib\mail.jar;%AXIS_HOME%\WEB-INF\lib\xmlsec-1.4.4.jar

   c.
   CLASSPATH=.;%AXIS_CLASSPATH%


3. 執行方法
   java org.apache.axis.wsdl.WSDL2Java wsdl檔案全名 -o 相對目錄名稱
   
   例如:
   C:\>java org.apache.axis.wsdl.WSDL2Java outbound.wsdl -o wsdl_to_java_temp
   即代表會把 outbound.wsdl 轉換完成的檔案放在 C:\wsdl_to_java_temp 底下

JSTL 標籤

<c:out> 標籤
  <b>Hello, <c:out value="${user}" default="guest"/>.</b>
  可指定default值,避免 EL 表示式 user 之值為 null

  <b>Hello, <%=user%>.</b>
  <b>Hello, ${user}.</b>
  若 user 為 null 以上兩種方式,則 output 為 Hello, ______.

<c:forEach> 標籤
  以下兩個寫法結果都一樣,但使用 <c:forEach> 標籤卻精簡多了
  1.
  <table>
    <%
    String[] items = (String[]) request.getAttribute("movieList");
    String var = null;
    for (int i = 0; i < items.length; i++) {
      var = items[i];
    }
    %>
    <tr>
      <td><%= var %></td>
    </tr>
  </table>

  2.
  <table>
    <c:forEach var="movie" items="${movieList}">
      <tr>
        <td>${movie}</td>
      </tr>
    </c:forEach>
  </table>

  可用巢狀迴圈,範例如下:
  Servlet 程式碼
    String[] ary1 = {"a", "b", "c", "d"};
    String[] ary1 = {"e", "f", "g", "h"};
    java.util.List arrayList = new java.util.ArrayList();
    arrayList.add(ary1);
    arrayList.add(ary2);
    request.setAttribute("arrays", arrayList);

  JSP 程式碼
    <table>
      <c:forEach var="arrayEl" items="arrays">
        <c:forEach var="item" items="arrayEl">
          <tr>
            <td>${item}</td>
          </tr>
        </c:forEach>
      </c:forEach>
    </table>

<c:if> 標籤
  <c:if test="${user == 'admin'}">
    <jsp:include page="test.jsp">
  </c:if>
  上面的敘述代表若 user 變數值為 "admin"
  則 include test.jsp 頁面到網頁中
  但此標籤無法做到 else 的敘述,下一組標籤可以做到此需求

<c:choose>, <c:when>, and <c:otherwise> 標籤
  用法範例如下
    <c:choose>
        <c:when test="${a == 'test1'}">
            output string1
        </c:when>
       
        <c:when test="${a == 'test2'}">
            output string2
        </c:when>
       
        <c:otherwise>
            output string2
        </c:otherwise>
    </c:choose>

  以上被 <c:choose> 包住的判斷,包括<c:otherwise>,只會有一個被執行