javascript - javascript中的jsp

标签 javascript jsp struts-1

我已经创建了一个 jsp 页面。因为当我选择 1 个复选框或两个复选框或无时,相应的文本框和列表框必须显示在同一页面中。

为此,我尝试在单击复选框时调用 javascipt 函数。 javascript 函数包含显示文本框的代码。但它没有用。

由于我在 struts 中做这个项目,我不知道如何获取复选框值。并且 JavaScript 函数的调用有效。但是没有在JavaScript函数中进入jsp代码。

我的代码是

 <tr>
 <td>SEJ:</td>
 <td>SEJ 1:<html:checkbox property="sej1" value="on" onclick="checkbox_trial()"></html:checkbox></td>
 <td>SEJ 2:<html:checkbox property="sej2" value="on" onclick="checkbox_trial()"></html:checkbox></td>
 </tr>


  <script type="text/javascript">
  function checkbox_trial()
  {

        <% if(request.getParameter("sej1")=="on"){
    %> 
   <tr><td>SEJ1 Age<html:text property="sej1_age"></html:text></td></tr>
   <tr><td>SEJ1 DOI<html:text property="sej1_doi"></html:text></td></tr>
   <%} 

       else if(request.getParameter("sej2")=="on"){%>
   <tr><td>SEJ2 Age<html:text property="sej2_age"></html:text></td></tr>
       <tr><td>SEJ2 DOI<html:text property="sej2_doi"></html:text></td></tr>
   <%}

       else if((request.getParameter("sej1")=="on")&&(request.getParameter("sej2")=="on")){%>
   <tr><td>SEJ1 Age<html:text property="sej1_age"></html:text></td></tr>
   <tr><td>SEJ1 DOI<html:text property="sej1_doi"></html:text></td></tr>
   <tr><td>SEJ2 Age<html:text property="sej2_age"></html:text></td></tr>
   <tr><td>SEJ2 DOI<html:text property="sej2_doi"></html:text></td></tr>
   <%}

       else{%>
   NOTHING <% } %>
  }

最佳答案

它是这样工作的:Java/JSP 在网络服务器上运行,生成 HTML/CSS/JS,网络服务器将其发送到网络浏览器,网络浏览器运行 HTML/CSS/JS。不是 Java/JSP。在网络浏览器中右键单击页面并选择查看源代码。如果 Java/JSP 正确完成了它的工作,那么您应该不会在其中看到它的任何一行。

如果您想使用 JavaScript 调用 Java/JSP 代码,您必须向网络服务器调用另一个 HTTP 请求,以便它可以根据特定请求执行 Java/JSP 代码。您可以通过提交表单或触发异步(ajaxical)请求来做到这一点。

鉴于目前所展示的技能以及您正在使用 Struts 的事实,我认为 ajax 会有点过于复杂。我建议只需单击复选框即可提交表单

<input type="checkbox" name="show" value="true" onclick="submit()" />

然后让 JSP 有条件地显示输入字段(只是一个 JSTL 示例,因为我不使用 Struts)

<c:if test="${param.show == 'true'}">
    <input type="text" />
    <select />
</c:if>

更新:顺便说一句,您在代码中遇到了另一个主要问题。您不能在 Java 代码中通过 == 比较字符串值(只能在 EL 中这样做)。在 Java 代码中,您需要使用 equals() 方法。否则它们将通过引用而不是值进行比较。我建议也学习基本的 Java。

关于javascript - javascript中的jsp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4709603/

相关文章:

javascript - 如何以正确的方式从 JavaScript 获取 contextPath?

javascript - 使用 map 将二维字符串数组转换为拆分数值数组

javascript - 显示 JSON 响应

java - Tomcat 8 JSP 验证

oracle11g - ORA-28040 : No matching authentication protocol : Oracle 12c Upgrade

java - 如何设置登录页面路径

java - Struts1中的struts-config.xml文件中可以定义类方法名吗?

javascript - Google 表格 - 从列中生成所有可能的字符串组合

javascript - 使用文件读取器和 blob 显示图像

java - JSP XML 语法错误 : JasperException when replacing <% %> with <jsp:scriptlet> </jsp:scriptlet>