我想在单个jsp页面中使用java变量
我从html调用函数,就像我想在单个jsp页面中使用java变量,java,jsp,Java,Jsp,我从html调用函数,就像 <%! public void runJavaMethod(int id) { %> <% try{ String icd = request.getParameter("icd"); String inm = request.getParameter("inm"); String istk = request.getParamet
<%!
public void runJavaMethod(int id)
{
%>
<%
try{
String icd = request.getParameter("icd");
String inm = request.getParameter("inm");
String istk = request.getParameter("istock");
String sstk = request.getParameter("sstock");
String upr = request.getParameter("uprice");
String spr = request.getParameter("sprice");
r = s.executeQuery("select * from itemsyncdata");
while(r.next())
{
s.executeUpdate("update itemsyncdata set itemcode='"+icd+"',itemname='"+inm+"',instock='"+istk+"',storestock='"+sstk+"',unitprice='"+upr+"',storeprice='"+spr+"' where id='"+a+"'");
}
}
catch(Exception e)
{
e.printStackTrace();
}
%>
<%!} %>
所以我们需要runJavaMethod参数。onclick=“”/>
<input type="submit" id="btnSync" value="Sync" class="button" name="Sync" onclick="<%runJavaMethod(r.getInt(1));%>"/>
HTML/Javascript在客户端播放,而JSP/Java在服务器端播放
你不能。您可能会误解JSP和HTML/JavaScript
存在于同一文档中。是的,但JSP部分是在服务器端编译的,而客户端本身就是。
您可以做的是必须发出服务器请求。最有可能是Ajax请求。您试图将两种语言混为一谈,即Java和Javascript/html,即,
onclick
是一个Javascript事件,您无法从Javascript调用runJavaMethod
简单地说,您不能使用Javascript直接调用Java方法(存在于scriptlet中),因为所有JSP代码在从服务器加载时都会生成(变成)html
因此,如果您必须解决这个问题,那么在点击onclick
时,您需要调用一个URL,该URL点击服务器上的servlet/controller方法来执行该任务(即执行业务逻辑)
更重要的一点是,scriptlet是遗留代码,我强烈建议不要使用它们来生成或管理html内容,而是使用JSTL,以便在关注点(即业务逻辑和用户界面需求)之间有一个清晰的分离
另外,我强烈建议您阅读并遵循其中的JSP最佳实践。您正在混合两种不同的东西。JSP是服务器端代码,它的呈现响应是发送回浏览器的HTML。在您的例子中,Javascript是纯客户端 如果您真的想调用服务器端处理,那么可以使用Ajax调用创建一个简单的Java脚本函数,并获取您可以使用它的响应
我建议将JSP的所有逻辑都发送到后端类中,而不是将其放入JSP中。JSP是UI设计的理想选择。您的问题是什么?
onclick="<%runJavaMethod(r.getInt(1));%>"/>