今天用struts2的if标签作一个判断,死活到不了if里面,代码如下:
<s:if test="namePinYin == 'a'">hello</s:if>
页面也不报错,而且也测试了namePinYin的确等于a
后来发现服务器报了个NumberFormatException,信息如下:
Caught an exception while evaluating expression 'namePinYin == 'a'' against value stack
java.lang.NumberFormatException: For input string: "a"
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1224)
google了一下,发现问题其实很简单,namePinYin是个字符串,test的时候需要这样写:
<s:if test='namePinYin == "a"'>hello</s:if>
照这样看,单引号可能会用于比较数字类型,详细可以查看一下官方的faq:
http://struts.apache.org/2.x/docs/why-wont-the-if-tag-evaluate-a-one-char-string.html
<s:if test="aStringProperty == 'A'">
Why doesn't this work when myString is equal to A?
</s:if>
<s:if test='aStringProperty == "A"'>
This works!
</s:if>
分享到:
相关推荐
Struts2是一个强大的MVC框架,它在处理用户请求时提供了丰富的功能,其中包括类型转换(Converter)。类型转换是Struts2框架中一个重要的特性,它允许我们把前端表单提交的数据自动转换为后端Java对象的属性。在这个...
Struts2作为一款流行的Java Web框架,其在处理表单数据和模型对象之间的转换时,提供了强大的类型转换机制。在默认情况下,Struts2能够自动处理基本类型和简单类型的转换,但当我们需要对复杂的数据类型或者自定义...
在Struts2框架的应用中,经常会出现各种类型的异常,其中一种常见的异常便是数字格式异常(`NumberFormatException`)。这种异常通常发生在应用程序尝试将非数字字符串转换为数字类型(如`Integer`或`Double`)时。 ...
if (str.matches("\\d+") && str.length() (Integer.MAX_VALUE).length()) { int num = Integer.parseInt(str); } else { System.out.println("超出int范围,无法转换"); } ``` 4. **异常处理**:虽然不推荐...
Struts2是一个非常流行的Java Web框架,用于构建和维护可扩展且易于管理的企业级应用程序。在Struts2中,类型转换是处理用户输入数据时的一个关键功能,它允许框架自动将HTTP请求参数(如字符串)转换为Java对象的...
在validate()方法中,我们可以用`try-catch`块来捕获`NumberFormatException`,以确保输入是数字。 2. **Action类**:在CalculatorAction类中,实现validate()方法,计算两个数字的结果,并检查是否符合预期的数学...
3. 在用户输入转换时未处理非法字符,可能触发NumberFormatException,应使用try-catch处理异常。 4. 使用substring()、charAt()等方法不当,可能导致StringIndexOutOfBoundsException,需进行边界检查。 5. 类路径...
2. 使用try-catch语句捕获异常。在将非数字类型的数据强制转换为数字类型时,使用try-catch语句捕获异常,并在catch块中处理该异常。 案例分析 例如,在某个Web项目中,我们需要将String类型的数据强制转换为...
1. **Struts2**:作为SSH中的Action层,Struts2负责处理用户的请求并转发到相应的业务逻辑。它通过配置Action和Result来定义请求的处理流程,提供了丰富的拦截器(Interceptor)机制,可以进行权限控制、日志记录等...
2. **使用`Double.parseDouble()`或`Double.valueOf()`**:与整数类似,如果字符串不能解析为有效的浮点数,比如`Double.parseDouble("123abc")`,也会抛出`NumberFormatException`。 3. **使用`Byte`, `Short`, `...
2. 捕获并处理`NumberFormatException`,确保输入是有效的二进制字符串。 3. 验证字符串长度,防止数值超出整型范围。 4. 可以自定义异常信息,提高错误处理的可读性。 通过理解和应用这些知识点,你可以创建一个...
Java 2实用教程(第三版)实验指导与习题解答 清华大学出版社 (编著 耿祥义 张跃平) 实验模版代码 建议使用文档结构图 (选择Word菜单→视图→文档结构图) 上机实践1 初识Java 4 实验1 一个简单的应用程序 ...
2. 如果字符串包含的是字母,避免Mybatis将其误识别为数字,需要根据实际情况添加`.toString()`方法。 3. 当在`<choose>`、`<when>`和`<otherwise>`标签中使用条件表达式时,字符串比较也应遵循相同的规则,确保引号...
num2 = convert_to_int_or_alpha(parts2[i]) if i (parts2) else 0 if num1 < num2: return -1 elif num1 > num2: return 1 return 0 def convert_to_int_or_alpha(part): if not part: return 0 try: ...
项目中碰到的,已解决,写个文档记录一下
2. 在ActionForm中声明对象数组属性,并重写`reset`方法以初始化数组。 3. 在JSP页面中动态创建表单,使用数组索引引用对象属性。 4. 在Action类中从ActionForm中获取对象数组,并进行进一步处理。 通过这种方式,...
2. **控制结构**:使用`if...else`语句实现逻辑判断。 3. **标准输入输出**:利用`BufferedReader`读取用户输入的数据。 4. **异常处理**:通过`try...catch`块来处理可能出现的异常。 #### 代码解析 ##### 1. ...
} else if (act == "1" || act == "2" || act == "3" || act == "4" || act == "5" || act == "6" || act == "7" || act == "9") { tf_out.setText(tf_out.getText()); } // 运算符 if (act.equals("+/-")) {...