2012-03-05 11 views
0

私はJSON文字列の形式でStringを返すメソッド名method()を持つクラスを持っています。出力は::Jsonデータをdojogridのソースとして追加

これはDojoを使用してデータグリッド用のデータを生成するためのデータ形式です。次のように私のJSPページでは、私はそれを使用しています::私は

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1"%> 
<%@ page import="MyPackage.PopulateTextbox" %> 
<%@ page import="java.sql.*" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<style type="text/css"> 
@import "http://localhost:8080/2_8_2012/js/dojo/resources/dojo.css"; 

@import "http://localhost:8080/2_8_2012/js/dijit/themes/nihilo/nihilo.css"; 
</style> 

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/dojo/1.4/dojo/dojo.xd.js" djConfig="isDebug: false, parseOnLoad: true"></script> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<script type="text/javascript"> 

dojo.require("dojox.grid.DataGrid"); 
dojo.require("dojo.data.ItemFileReadStore"); 
</script> 

<script type="text/javascript"> 
var temp1; 
$(document).ready(function() { 

PopulateTextbox obj = new PopulateTextbox(); 
temp1 = obj.method(); 
}); 
out.println(temp1); 
var storedata={ 
     identifier:"table1", 
     label:"name", 
     items: temp1 
} 
var gridStructure =[{ 
cells:[ 
      [ 
        { field: "ID", 
         name: "ID_Emp", 
         width: "40%", styles: 'text-align: right;' 
        }, 
        { 
         field: "Names", 
         name: "Name", 
         width: "40%", styles: 'text-align: right;' 
        } 

      ] 
     ] 
}]; 

</script> 

<title>Dojo Data</title> 
</head> 
<body class=nihilo> 
<div style="width: 400px; height: 300px;"> 
    <div data-dojo-type="dojo.data.ItemFileReadStore" data-dojo-id="countryStoreForGrid" data-dojo-props="data:storeData"></div> 
    <div id="grid" 
    data-dojo-type="dojox.grid.DataGrid" 
    data-dojo-props="store:countryStoreForGrid, 
    structure:'gridStructure', 
    queryOptions:{deep:true}, 
    query:{}, 
    rowsPerPage:40"> 
    </div> 
</div> 

</body> 
</html> 

何をやっている私は私のPopulateTextboxクラスのオブジェクトを作成し、JSON文字列を返すメソッドを呼び出していますページのロードの通りです。そして私はその文字列をITEMSの下で渡しています:私のグリッドのデータです。これはdoinの正しい方法ですか?私はJavaScriptのこのようなメソッドを呼び出すことができますか?そうでない場合は、私に正しい方法を提案してください。私はこのページを実行する実行すると、私はエラー::

Webpage error details 

Message: Expected ';' 
Line: 25 
Char: 17 
Code: 0 
URI: http://localhost:8080/2_8_2012/DisplayData.jsp 

を取得しています。その私が

PopulateTextbox OBJ =新しいPopulateTextboxを書いています、同じ行(); PopulateTextbox.java

package MyPackage; 

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement; 
import java.util.ArrayList; 
import java.util.List; 

import net.sf.json.JSONArray; 
import net.sf.json.JSONObject; 

import com.google.gson.Gson; 

public class PopulateTextbox { 

    Gson gson = new Gson(); 
    JSONObject obj = new JSONObject(); 
    JSONArray arr = new JSONArray(); 
    String temp1; 

    String temp; 
    List <String>rowValues = new ArrayList<String>(); 
    List <Integer>rowValues1 = new ArrayList<Integer>(); 
    String[] contactListNames; 
    Connection con=null; 
    Statement st=null; 
    ResultSet rs=null; 


    public String method(){ 


     try{ 


     String driver = "sun.jdbc.odbc.JdbcOdbcDriver"; 
     Class.forName(driver); 

     String db = "jdbc:odbc:Practice_Database"; 
     con = DriverManager.getConnection(db,"",""); 

     st = con.createStatement(); 
     String sql = "SELECT Emp_Name,ID FROM EmployeeSearch"; 
     rs = st.executeQuery(sql); 

     while(rs.next()){ 
      obj.put("ID", rs.getInt("ID")); 
      obj.put("Names",rs.getString("Emp_Name")); 
      arr.add(obj); 
      //obj.add("Name", rs.getString("Emp_Name")); 
      //rowValues1.add(rs.getInt("ID")); 
      //rowValues.add(rs.getString("Emp_Name")); 
      //obj.accumulate("Names",rs.getString("Emp_Name")); 
     } 
     //obj.accumulate("ID",rowValues1); 

     //obj.accumulate("Names",rowValues); 
     temp1 = arr.toString(); 
     System.out.println(temp1); 
     contactListNames = (String[]) rowValues.toArray(new String[rowValues.size()]); 
     temp = gson.toJson(contactListNames); 




    }catch(Exception e){System.out.println(e);} 
    /*finally{ 
     try { 
       if(con!=null)con.close(); 
      } catch (SQLException e) { 

       e.printStackTrace(); 
      } 
     try { 
      if(rs!=null)rs.close(); 
     } catch (SQLException e) { 

      e.printStackTrace(); 
     }try { 
      if(st!=null)st.close(); 

     } catch (SQLException e) { 

      e.printStackTrace(); 
     } 


    }*/ 
     return temp1; 

    } 
    public static void main(String args[]) 
    { 
     PopulateTextbox obj = new PopulateTextbox(); 
     String temp1= obj.method(); 


    } 
} 

ため

コード助けてください。ありがとうございます。

答えて

0

あなたのPopulateTextBoxはJavaクラスですが、JavaScriptコードで参照しているようです。その後

<%! 
    String javaStr=null; 
%> 

、文字列移入あなたのJava関数を呼び出す:

あなたは、

最初のJSPでJavaコードを実行するJSP宣言内の文字列を宣言するためにJSPスクリプトレットを使用することができます

<% 

PopulateTextbox obj = new PopulateTextbox(); 
String javaStr = obj.method(); 

%> 

次に、次のようにjavacriptを変更します。

<script type="text/javascript"> 
    var temp1; 
$(document).ready(function() { 

temp1 =<%= javaStr %> 
}); 

「out.println(temp1);」を削除します。あなたはデータのJSONを確保するために放火犯コンソール、またはアラート(TEMP1)のデータを表示するためにはconsole.log(TEMP1)を行うことができますあなたのjavascriptのコード

からのラインはjavascriptの変数

TEMP1であります
関連する問題