jsp 获取两个数值直接用大于、小于比较大小和算加法,不是按数字大小比较,JSP都是以字符串在操作

本文描述了在使用JSP开发过程中遇到的一个常见问题——数值作为字符串处理时出现的错误行为,包括数值比较和加法运算,并提供了解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在马来项目:jsp开发过程中遇到个问题....

jsp获取数值,比较大小和算加法都是以字符串的方式在比较和计算,加法直接拼接,代码如下

<tr>
<td align="right" width="40%" style="height:20px;">
我当前房卡数:
</td>
<td colspan="2" align="left"  style="height:20px;">
<span id="myRoomCardNum">${operatRC }</span>
</td>
</tr>
<tr>
<td align="right" width="40%" style="height:20px;">
出售数量:
</td>
<td colspan="2" align="left"  style="height:20px;">
<input name="" type="text" id="sellNumOne" class="put" maxlength="12" />
<span id="sellNumOneMSG" class="red"></span>
</td>
</tr>

下面是获取值:

var myRoomCardNum = $('#myRoomCardNum').html();
var sellNum = $.trim($('#sellNumOne').val());
if(sellNum == null || sellNum == ""){
$('#sellNumOneMSG').html('不能为空');
return false;
}
var reg = /^[1-9]\d*$/;
if(isNaN(sellNum)){
$('#sellNumOneMSG').html('必须为数字');
return false;
}
if(! reg.test(sellNum)){
$('#sellNumOneMSG').html('必须为正数');
return false;
}
if(sellNum-myRoomCardNum>0){
$('#sellNumOneMSG').html('你的房卡数不足');
return false;
}

原因:

jsp开发中获取数据默认都是字符串,也就是字符串的优先级比较高,当对数据做比较计算加法时,它都是先以字符串的形式进行对应的操作!

解决办法:

比较大小通过减法来实现!

加法计算-----对获取的数值进行一个转换,如:console.log(parseInt(myRoomCardNum)+parseInt(sellNum));


分析问题和解决方法有误或不全欢迎指教!!

在JavaJSP中,你可以通过URL编码将数值作为查询字符串传递,并在接收端解码并处理它们。首先,让我们假设你有一个名为a.jsp的页面,它包含两个输入框一个按钮,以及一个链接,点击后会将输入的数值传递给b.jsp。 ```html <!-- a.jsp --> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <!DOCTYPE html> <html> <head> <title>传递数值</title> </head> <body> <form action="b.jsp"> <label for="num1">Number 1:</label> <input type="number" id="num1" name="num1"><br> <label for="num2">Number 2:</label> <input type="number" id="num2" name="num2"><br> <input type="submit" value="Submit"> </form> <a href="b.jsp?num1=<%= num1 %>&num2=<%= num2 %>">直接跳转到结果页面</a> </body> </html> ``` 在这个例子中,`<%= num1 %>``<%= num2 %>`是JSP表达式,用于获取表单中输入字段的值。当用户点击提交按钮时,数据会被发送到b.jsp。如果选择直接跳转,那么这两个值就会直接作为查询字符串附加到URL上。 然后,在b.jsp中,你需要解析查询字符串,提取数值并计它们的: ```jsp <%@ page contentType="text/html;charset=UTF-8" language="java" %> <!DOCTYPE html> <html> <head> <title>Addition Result</title> </head> <body> <% String num1 = request.getParameter("num1"); String num2 = request.getParameter("num2"); int sum = Integer.parseInt(num1) + Integer.parseInt(num2); out.println("The sum of the numbers is: " + sum); %> </body> </html> ``` 在这个片段里,`request.getParameter()`用于从请求中获取参数,`Integer.parseInt()`用于将字符串转换为整数以便于加法。最后,结果会被打印出来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值