如何将字符串转换为 html 中的数字?以及如何将变量传递给 scriptlet 代码?

How to convert a string to a number in html? and how to pass a variable into scriptlet code?

如何在 HTML 中将字符串转换为数字?我想将输入值转换为数字并将其传递到脚本代码中。按下按钮应该进行这种转换并传递变量。

Enter a number: <input type="text" id="number" value=10>
<input type="button" id="change-btn" value="Change" onclick="getInput(number.value)">

<script language="javascript" type="text/javascript">
    function getInput(x){
        var input = x;
        alert(input);
    }
</script>

<Table border=2>
    <% for(int i = 1; i <= **X**; i++) { %>
        <tr>
            <td>Number</td>
            <td><%= i %></td>
        </tr>
    <% } %>
</Table>

用于将字符串转换为数字:

<input type="button" id="change-btn" value="Change" onclick="getInput()">

如果您注意到了,我已经从 getInput() 中删除了 number.value,因为 number.value 不会 return 您输入的元素值。

在javascript中:

function getInput(){
    var input = document.getElementById("number").value;
    // conversion from string to integer
    if(isNaN(input)) return 0; // value is not a number
    var value = parseInt(input);
}

pass it into the scriptlet code.

这是不可能的。由于 scriplet 已在服务器中编译并发送到客户端。您不能将值分配回 scriplet。 否则您需要向 servlet 发出 ajax 请求以将数据发送到服务器。否则制作一个表单提交以将数据发送到 servlet 并使用 requestDispatcher 重定向到填充 table.

的同一页面

在 JavaScript 中设置的变量和在 JSP 中的 Java scriptlet 代码中设置的变量之间没有 link(当然可以,但不在你正在尝试的方式)。如果您想使用 Scriptlet 代码根据输入的数字显示 table 行,则必须添加一个表单并将其 post 返回到页面。您还需要在文本字段中添加名称值。然后您将使用 request.getParameter("name of the text field") 获取他们输入的值并将 **X** 替换为该值。您可能还想进行@mohamedrias 建议的更改。