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: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=&rateid="  id="upload" >附件 上传/下载a>

href中指定要跳转的页面及携带的参数,至于在跳转页面怎么获取参数,此文上面部分有代码,请参考之。注意href中多参数的拼接方式,与url中有所不同。
如果没有逻辑要处理的话,选择href的方式进行页面之间的跳转来的更加灵活。

你可能感兴趣的:(java)