JavaScript 中的 jsp

发布于 2024-10-12 22:51:48 字数 1841 浏览 1 评论 0原文

我创建了一个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 <% } %>
  }

I've created a jsp page. In that when i select 1 check-box or both check-box or none, the corresponding text-boxes and list-box must be displayed in the same page.

For that i tried of calling a javascipt function when i click the checkbox. The javascript function contain code to display the textboxes. But it didn't work.

Since I'm doing this project in struts, I don't know how to get check-box value. And calling of JavaScript function works. But didn't enter into jsp code in JavaScript function.

My code is

 <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 <% } %>
  }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

蝶舞 2024-10-19 22:51:48

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

如果您想使用 JavaScript 调用 Java/JSP 代码,则必须向 Web 服务器调用另一个 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。

This is how it works: Java/JSP runs at webserver, produces HTML/CSS/JS, webserver sends it to webbrowser, webbrowser runs HTML/CSS/JS. Not Java/JSP. Rightclick the page in webbrowser and choose View Source. If Java/JSP has done its job right, you shouldn't see any line of it in there.

If you want to invoke Java/JSP code using JavaScript, you've got to invoke another HTTP request to the webserver so that it can execute the Java/JSP code based on the specific request. You can do that by either submitting the form or firing an asynchronous (ajaxical) request.

Given the skills shown as far and the fact that you're using Struts, I think ajax is going to be a bit too complex. I'd suggest to just submit the form on click of the checkbox

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

and then let JSP conditionally display the input fields (just a JSTL example since I don't do Struts)

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

Update: you've by the way another major problem in the code. You can't compare string values by == in Java code (you can do so in EL only). In Java code you need to use equals() method. Otherwise they will be compared by reference instead of by value. I'd suggest to learn basic Java as well.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文