日期:2014-05-16 浏览次数:20461 次
http://wenku.baidu.com/view/2ddf3843be1e650e52ea99e5.html
json调用jsp页面,jsp页面中加载公司标签的实现过程(json 异步)
1、jsp中写的json:
??? ??? var isAskUrl = "<c:url value='/ask/ajax/isAskJson.shtm'? />"???
??? ??? $.getJSON(isAskUrl,{userID:hiddenUserId,faqPrice:price,ranNum:Math.random()},function(data){
??? ??? ?? if(data != 1 ){
??? ??? ??? ?? alert("金额不足,不能提问!");
??? ??? ?? }else{
??? ??? ?? }
??? ?? });
2、要访问的isAskJson.jsp页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
??? pageEncoding="UTF-8"%>
<%@ include file="/WEB-INF/jsp/common/common.jsp" %>
<%@ taglib tagdir="/WEB-INF/tags/fee" prefix="fee" %>
<%@ include file="/WEB-INF/jsp/login/loginCheck.jsp" %>?
<fee:isAsk var="result" userID="${param.userID}" faqPrice="${param.faqPrice}"></fee:isAsk>
<c:if test="${not empty result and result eq 1}">
??? <util:writeJson value="[1]"></util:writeJson>
</c:if>
<c:if test="${empty result or? result ne 1}">
??? <util:writeJson value="[0]"></util:writeJson>
</c:if>
??
3、isAsk.tag 的代码
<%@ attribute
??? name="userID"
??? type="java.lang.Integer"
??? required="true"
?%>
?<%@ attribute
??? name="faqPrice"
??? type="java.lang.Float"
??? required="true"
?%>
<%@
??? attribute
??? name="var"
??? type="java.lang.String"
??? required="true"
%>
<%@ tag
??? import="com.huabeisai.rad3.ibatis2.SqlMapTemplate,com.huabeisai.fee.domain.UserAccount,
??? javax.servlet.jsp.PageContext,java.util.*"
??? dynamic-attributes="dynamicAttributes"
??? description="是否可以提问" %>
<%
??? Integer userID = (Integer)jspContext.getAttribute("userID");
??? Float faqPrice = (Float)jspContext.getAttribute("faqPrice");
???
??? int rtInt = 0;
???
??? if(userID == null){
??? ??? return;
??? }
???
??? if(faqPrice == null || faqPrice < 0){
??? ??? return;
??? }
???
??? Map paramMap = new HashMap();
??? paramMap.put("userID",userID);
??? paramMap.put("accountID",1);
??? UserAccount userAccount = (UserAccount)SqlMapTemplate.selectObject("fee","ns.op.feeApi.getUserAccount",paramMap);
???
??? if(userAccount != null && userAccount.getUsableMoney() != null && userAccount.getUsableMoney() > 0){
??? ??? Float usableMoney = userAccount.getUsableMoney();
??? ???
??? ??? if(usableMoney >= faqPrice){
??? ??? ??? rtInt = 1;
??? ??? }else {
??? ??? ??? rtInt = 0;
??? ??? }
??? }else{
??? ??? rtInt = 0;
??? }
???
??? jspContext.setAttribute(var,rtInt,PageContext.REQUEST_SCOPE);
%>
?
?
?
?
第二版不用数据库的异步交互过程:
?
<%@ page language="java" contentType="text/html; charset=UTF-8"
??? pageEncoding="UTF-8"%>
<%@ include file="/WEB-INF/jsp/common/common.jsp" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
?<script src="http://code.jquery.com/jquery-latest.min.js"></script>
</head>
<script>
???? function ckc(vl){
???? var isAskUrl = "<c:url value='/ask/ajax/isJson.shtm'? />"
???? var numh=vl.value;
???? $.getJSON(isAskUrl,{numh:numh,