1. 程式人生 > >java程式中前後臺互動的兩種實現方式以及頁面之間的跳轉

java程式中前後臺互動的兩種實現方式以及頁面之間的跳轉

雖然現在市面上很流行前後端分離,但是在很多企業中還是使用的是SSH框架,前後端不分離。
那麼此類前後端有其自身獨特的前後臺互動的方式,但是也支援js/jquery。下面對這兩種方式做一下歸納。

前後端互動

1 通過action表單提交

<% 
       String abc = request.getParameter("abcno");
       String rateid =request.getParameter("rateid");
 %>

       <s:set name="abc"><%=abc%> </s:set
>
<s:set name="rateid"><%=rateid %></s:set> <s:form action="uploadAction.action" enctype="multipart/form-data" method="post" namespace="/html/abc"> <s:hidden name="abcno" id="abcno" value="%{abc}"></s:hidden> <s:hidden name="rateid" id="rateid"
value="%{rateid}">
</s:hidden> <span id="files"> <s:file name="upload" label="選擇附件" /> <p/> </span> <!-- <s:checkbox name="type" value="true" lable="示意圖" fieldValue="0"></s:checkbox> <s:checkbox name="type" value="false" lable="照片" fieldValue="1"></s:checkbox> -->
<s:radio list="%{#{'0':'示意圖','1':'照片'}}" theme="simple" name="type"></s:radio> <s:submit value="上傳" style="width:100px" /> </s:form>

此段程式碼是用來上傳圖片的,所以定義enctype=”multipart/form-data”。

如果使用的是struts2標籤的form,請記得加上action所對應的namespace,否則提交不到對應的action中,使用普通的form標籤就不存在指定namespace的問題。

因為是通過超連結帶引數跳轉到這個頁面的,所以用<% %>獲取傳來的引數,然後< s:set>設定值,以備後面取用。後面兩個hidden就是從此處取值。

form中標籤的name屬性名對應action的成員變數,成員變數應設定setter/getter方法已獲取此處傳過去的資料。

2.通過jquery的ajax與後臺互動

 function delPicFunc(filepath,rateid,abcno){
             console.log("filepath:"+filepath+",rateid="+rateid+",nrcno:"+nrcno);

var delUrl ="http://localhost:8080/xxx/delPicACtion.action?inputPath="+filepath+"&rateid="+rateid+"&abcno="+abcno;
var encodeUrl = encodeURI(delUrl); //對url進行編碼,否則中文作為引數傳過去就可能出問題
 console.log(encodeUrl);
              $.getJSON(encodeUrl, function(data){
                  alert("刪除成功!");
                  reflesh();
               }); 
       }

如果action在struts.xml中設定為 < result name=”success” type=”json” > < / result> 那麼data就可以取到其返回的值。具體方法可以在瀏覽器中輸入對應的url,回車之後頁面就會顯示其返回的json資料。

頁面之間的跳轉:

1,通過action在struts.xml中的配置

< result name="success" >
          /sss/aaa/bbb.jsp          
< /result>

跳轉到制定頁面(地球人都知道)。

2,通過href 跳轉

  <a href="pages/abcUploadPic.jsp?abcno=<s:property value='abcorderno'/>&rateid=<s:property value='rateid'/>"  id="upload" >附件 上傳/下載</a>

href中指定要跳轉的頁面及攜帶的引數,至於在跳轉頁面怎麼獲取引數,此文上面部分有程式碼,請參考之。注意href中多引數的拼接方式,與url中有所不同。
如果沒有邏輯要處理的話,選擇href的方式進行頁面之間的跳轉來的更加靈活。