AJAX應(yīng)該是現(xiàn)在談?wù)撟疃嗟脑掝},一心寫業(yè)務(wù)邏輯的我也開始動心了,因為沒有研究過于深入所以寫的都是粗制濫造的東西,兄弟們見諒了,見笑了!
我不知道自己的理解是不是正確,下面是我實現(xiàn)的一段代碼~
問題:XXX物資管理系統(tǒng),要求計劃員登錄時選擇一個倉庫類別,還有登錄上去僅僅顯示此倉庫類別下的倉庫。
方案:1,修改登錄界面讓他可以選擇登錄身份當(dāng)選的是計劃員的時候再出倉庫類別的選項。(不爽~要該的東西太多,而且登錄過于復(fù)雜,讓局長也這樣登錄我就死了!)
2,在登錄的時候去檢擦session,isHas(storageType)?正常進(jìn)入:彈出窗口選擇一個再回一次登錄頁面~(改的東西不多·多加幾個方法和類)
實現(xiàn):選擇第二種方法~
具體代碼片斷:
logAction:
這樣一個斷js就拼接出來了。
當(dāng)計劃員登錄的時候就彈出窗體,強(qiáng)制選擇,然后刷新父窗體。
完成。
但是我不知道這樣做算不算是AJAX技術(shù)的體現(xiàn),我讀了一下ajax tags的 src 它也是往response里面扔?xùn)|西。請高人指導(dǎo)一下!
我不知道自己的理解是不是正確,下面是我實現(xiàn)的一段代碼~
問題:XXX物資管理系統(tǒng),要求計劃員登錄時選擇一個倉庫類別,還有登錄上去僅僅顯示此倉庫類別下的倉庫。
方案:1,修改登錄界面讓他可以選擇登錄身份當(dāng)選的是計劃員的時候再出倉庫類別的選項。(不爽~要該的東西太多,而且登錄過于復(fù)雜,讓局長也這樣登錄我就死了!)
2,在登錄的時候去檢擦session,isHas(storageType)?正常進(jìn)入:彈出窗口選擇一個再回一次登錄頁面~(改的東西不多·多加幾個方法和類)
實現(xiàn):選擇第二種方法~
具體代碼片斷:
logAction:
1
if(request.getSession().getAttribute(MmisConstants.STORAGETYPE_SESSION)==null)
{
PlanManagerLoginAjax.returnResponse(request, response);
2
}else if(request.getSession().getAttribute(MmisConstants.STORAGETYPE_SESSION)!=null &&
request.getSession().getAttribute(MisConstants.USER_ATTRIBUTE)!=null)
{
4
forward = MmisConstants.FORWARD_PLAN;
5
request.getSession().setAttribute(MisConstants.MENU_NAME,
7
MmisConstants.MENU_BUSINESS_PLAN);
8
}
在這里做了判斷,如果沒有就開始產(chǎn)生彈出窗體的代碼:


PlanManagerLoginAjax.returnResponse(request, response);
2

request.getSession().getAttribute(MisConstants.USER_ATTRIBUTE)!=null)

4

5

7

8

1
public class PlanManagerLoginAjax
{
2
static Logger log = Logger.getLogger("com.kaiwang.mmis.ajax.login.PlanManagerLoginAjax");
3
private static String HTML = "',window,'dialogWidth:500px;dialogHeight:400px;dialogLeft:200px;dialogTop:100px;center:yes;help:no;resizable:no;status:no');";
4
public static void returnResponse(HttpServletRequest request, HttpServletResponse response) throws IOException
{
5
6
StringBuffer htmlString = new StringBuffer();
7
AjaxUtils.buildHtmlHead(htmlString);
8
String url = request.getContextPath() + "/storageTypePrepareAction.do?action=select";
9
htmlString.append("showModalDialog('" + url + HTML);
10
11
AjaxUtils.buildHtmlFinality(response, htmlString);
12
log.info(htmlString.toString());
13
}
14
15
public static void closeSelectWindow(HttpServletRequest request, HttpServletResponse response) throws IOException
{
16
17
StringBuffer htmlString = new StringBuffer();
18
AjaxUtils.buildHtmlHead(htmlString);
19
20
htmlString.append("window.dialogArguments.location.reload();");
21
htmlString.append("window.close();");
22
23
24
AjaxUtils.buildHtmlFinality(response, htmlString);
25
log.info(htmlString.toString());
26
}
27
}
28
我用了一個dialog來做彈出的模式,其實就是在往response里面放東西,然后IE 自己去執(zhí)行,我有兩個公共的方法,分別封裝了HTML的頭和尾:


2

3

4



5

6

7

8

9

10

11

12

13

14

15



16

17

18

19

20

21

22

23

24

25

26

27

28

1
public static void buildHtmlFinality(HttpServletResponse response,
2
StringBuffer htmlString) throws IOException
{
3
response.setContentType("text/html;charset=gb2312");
4
htmlString.append("</script>");
5
6
PrintWriter out = response.getWriter();
7
out.println(htmlString.toString());
8
out.flush();
9
out.close();
10
}
11
12
/** *//**
13
*
14
* @param htmlString
15
* @author gary.lee
16
*/
17
public static void buildHtmlHead(StringBuffer htmlString)
{
18
htmlString.append("<script language=\"javascript\">");
19
}

2



3

4

5

6

7

8

9

10

11

12


13

14

15

16

17



18

19

這樣一個斷js就拼接出來了。
當(dāng)計劃員登錄的時候就彈出窗體,強(qiáng)制選擇,然后刷新父窗體。
完成。
但是我不知道這樣做算不算是AJAX技術(shù)的體現(xiàn),我讀了一下ajax tags的 src 它也是往response里面扔?xùn)|西。請高人指導(dǎo)一下!