2013-06-24 106 views
0

我需要在我的jsp中傳遞一些var ...我的servlet獲得的值用於javascript中的函數...這可能嗎?我過去我的代碼:JSP將var傳遞給腳本

  <%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
pageEncoding="ISO-8859-1"%> 
      <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
      <html> 
      <head> 
      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
      <script type="text/javascript" src="js/lib/ext-all.js"></script> 
      <link rel="stylesheet" type="text/css" href="resources/css/ext-all-gray.css"/> 
      <link rel="stylesheet" type="text/css" href="resources/css/EstiloPrincipal.css"/> 
      <title>Tipo Papel</title> 
      <script> 


      Ext.require([ 
'Ext.form.*', 
'Ext.form.field.File', 
'Ext.layout.container.Column', 
'Ext.window.MessageBox', 
'Ext.fx.target.Element', 
'Ext.panel.*', 
'Ext.toolbar.*', 
'Ext.button.*', 
'Ext.container.ButtonGroup', 
'Ext.layout.container.Table', 
'Ext.tip.QuickTipManager' 
    ]); 

    Ext.onReady(function() { 
Ext.QuickTips.init(); 


    var modificarRegistro = function(){ 



    Ext.Ajax.request({ 
     url: 'http://localhost:8080/MyMaver/ServletTipoPapel', 
     //url: 'http://lnxntf05:8080/MyMaver/ServletTipoPapel', 
     method: 'POST', 
     params: { 




      Funcionalidad: 'Modificar', 
      DPTipoPapel: Ext.getCmp('DPTipoPapel').getValue(), 
      DPIndicadorSoD: Ext.getCmp('DPIndicadorSoD').getValue(), 
      DPCaratula: Ext.getCmp('DPCaratula').getValue(), 
      DPFinicial:Ext.getCmp('DPFinicial').getValue(), 
      DPVinicial:Ext.getCmp('DPVinicial').getValue(), 
      DPFfinal:Ext.getCmp('DPFfinal').getValue(), 
      DPVfinal: Ext.getCmp('DPVfinal').getValue(), 
      DPVersCaratula: Ext.getCmp('DPVersCaratula').getValue(), 
      DPSpool: Ext.getCmp('DPSpool').getValue(), 
      DPTamPapel: Ext.getCmp('DPTamPapel').getValue(), 
      DPNumOptimo: Ext.getCmp('DPNumOptimo').getValue(), 
      DPFormularioCaratula: Ext.getCmp('DPFormularioCaratula').getValue(), 
      DPDescripcion: Ext.getCmp('DPDescripcion').getValue(), 
      DPTipoTrabajo: Ext.getCmp('DPTipoTrabajo').getValue(), 

      Entorno: Ext.getCmp('Entorno').getValue() 
     }, 
     success: function(response){ 

      var text = response.responseText; 
      alert("ha modificado un registro de la tabla tipo papel"); 
      // process server response here 
      respuestaModificacion(text); 

     }, 
     failure: function(){ 
      alert("Desde failure"); 
     }, 
     exception: function(){ 
      alert("Desde exception"); 
     } 
    }); 
}; 

    var top = Ext.widget({ 
    xtype: 'form', 
    id: 'multiColumnForm', 
    collapsible: true, 
    frame: true, 
    //renderer:contenedor, 
    title: 'TIPOS DE PAPEL - MANTENIMIENTO', 
    bodyPadding: '0 0 0', 
    width: '80%', 
    //height: 800, 
    fieldDefaults: { 
     labelAlign: 'side', 
     msgTarget: 'side' 
    }, 
    items: [cabeceraPrueba,customGroup, 
    simpleCombo,mensajesPrueba], 


    buttons: [{ 
     text: 'Altas', 
     id:'botonAlta', 
     handler: function() { 
      altaTipoPapel(); 
     } 
    },{ 
     text: 'Alta Masiva', 
     id: 'botonAltaMasiva', 
     hidden: true, 
     handler: function() { 
      this.up('form').getForm().isValid(); 
     } 
    },{ 
     text: 'Consulta', 
     disabled: true, 
     id:'botonConsulta', 
     handler: function() { 

      consultarTipoPapel(); 
     } 
    },{ 
     text: 'Modificar', 
     disabled: true, 
     id:'botonModificar', 
     handler: function() { 
      modificarRegistro(); 
     } 
    },{ 
      text: 'Bajas', 
      disabled: true, 
      id:'botonBaja', 
      handler: function() { 
      bajaTipoPapel(); 
     } 
    },{ 
     text: 'Limpiar', 
     handler: function() { 
      limpiarCampos(); 
     } 
    },{ 
     text: 'Histórico', 
     hidden: true, 
     handler: function() { 
      this.up('form').getForm().reset(); 
     } 
    }] 
}); 

top.render(document.body); 

}); 
    </head> 
    <body leftmargin="3" topmargin="3" marginwidth="0" marginheight="0" 
bottommargin="0"> 
    <form name="form1" action="/MyMaver/GestorPeticiones" method="post" enctype="multipart/form-data"> 
     <div id="campos"></div> 
    </form> 
<%String name = (String)request.getAttribute("usuario"); %> 
<%= name%> 
    </body> 
    </html> 

我想了var「usuario」傳遞給我的腳本代碼....這可能嗎?

回答

1

JSP生成HTML代碼。 JS是生成的HTML代碼的一部分。只需編寫JSP代碼,就可以生成所需的HTML/JS代碼。

例如,

<script> 
    var usuario = "${usuario}"; 
</script> 

現在,在瀏覽器中打開JSP頁面,做右擊,查看源,並確認JSP已經正確內聯在產生結果的EL變量在產生的JavaScript這樣的方式代碼語法是有效的(即引號,分號等):

<script> 
    var usuario = "Some User Name"; 
</script> 

注意:不要忘記採取JS escaping考慮與如一個自定義的EL功能。否則,如果用戶名包含雙引號則會中斷。另請注意,scriptlets<% %>是一種古老的學習JSP的方式,並且自十多年以來一直是discouraged。如上所示,只需使用EL即可。 ${foo}將打印在頁面,請求,會話和應用程序範圍中找到的名爲"foo"的第一個非空屬性。

+0

現在謝謝你們都是完美的。 – Deckard27

0

是的,它是...

<%String name = (String)request.getAttribute("usuario"); %> 
var usuario = '<%=name%>';