java程式中前後臺互動的兩種實現方式以及頁面之間的跳轉
阿新 • • 發佈:2019-01-08
雖然現在市面上很流行前後端分離,但是在很多企業中還是使用的是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的方式進行頁面之間的跳轉來的更加靈活。