如何在自定义JSP标记中传递整数值作为参数?

jumps4fun

我有一个在JSP中使用的自制标记库。我的contains标签有问题

这是一个通用的包含检查,它接受一个列表和一个对象,并对列表是否包含对象执行简单的检查。但是,当列表包含Integer值时,我遇到了问题。

这就是我所说的标签:

<custom:contains  object="1" list="${sessionScope.USER.userProfiles}"/>

这是它调用的Java类:

public class ContainsTag extends SimpleTagSupport{
    private List<Object> list;
    private Object object;

    public void setList(List<Object> list) {
        this.list = list;
    }

    public void setObject(Object object) {
        this.object = object;
    }

    @Override
    public void doTag() throws JspException, IOException {      

        boolean result;
        try {
            if(list == null || object == null){
                result = false;
            }
            else{
                result = list.contains(object);
            }

            getJspContext().getOut().print(result);
        } catch (Exception e) {
            e.printStackTrace();
            // stop page from loading further by throwing SkipPageException
            throw new SkipPageException("Exception in checking if " + list
                    + " contains " + object);
        }
    }
}

Printline语句显示,即使对象已打印1,列表也已打印[1],结果仍为false由于标签适用于其他类型的对象(字符串等),因此得出的结论是对象是字符串值,因此在整数列表中找不到。我也不能将对象精确地转换为整数,因为我的标记不再通用。

有没有一种方法可以指定参数是EL中的整数?我是否需要制作另一个名为的标签ContainsInteger还是对此问题有其他解决方案?

更新:

将对象值设置为"${1}"而不是"1",没有区别...

BalusC

object="1"不会起作用,因为它代表了一个String

String string1 = "1";
Integer integer1 = new Integer(1);
System.out.println(string1.equals(integer1)); // false

object="${1}"在EL默认不起作用,因为基于整数的数字Long“B 1.7.1二元运算- - A {* +,}”中的“表达式语言规范”(由指定的JSR-341有详细介绍)。

Long long1 = new Long(1L);
Integer integer1 = new Integer(1);
System.out.println(long1.equals(integer1)); // false

解决问题的一种方法是使用List<Long>代替List<Integer>,或者让自定义标签比较toString()两只手结果。

String string1 = "1";
Integer integer1 = new Integer(1);
System.out.println(string1.toString().equals(integer1.toString())); // true
Long long1 = new Long(1L);
Integer integer1 = new Integer(1);
System.out.println(long1.toString().equals(integer1.toString())); // true

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在自定义ImageView中将R.Drawable作为参数传递

来自分类Dev

如何在传递对象作为参数的同时解析自定义类型

来自分类Dev

如何在PostgreSQL中将自定义类型的多维数组作为函数参数传递?

来自分类Dev

如何在SSRS中传递多个整数参数值

来自分类Dev

自定义类型作为参数传递

来自分类Dev

如何将函数作为参数传递给Javascript中的自定义函数

来自分类Dev

如何在自定义短代码中以 URL 作为参数读取外部页面的标题?

来自分类Dev

如何在自定义函数中添加函数作为参数 - swift?

来自分类Dev

如何在Android自定义数据绑定中传递带有参数的函数

来自分类Dev

如何在Android自定义数据绑定中传递带有参数的函数

来自分类Dev

如何在Facebook Sharer链接中传递自定义参数

来自分类Dev

如何在 CRM Dynamics 中为自定义操作传递“目标”参数

来自分类Dev

如何在Android systrace中添加自定义标记?

来自分类Dev

如何使用PHP在Twilio中传递自定义参数?

来自分类Dev

如何在Dymola中定义记录的自定义参数?

来自分类Dev

将图像作为意图传递给其他活动中的自定义标记

来自分类Dev

如何在JSP的Java函数中将Struts2属性标记作为参数传递?

来自分类Dev

如何在C ++中创建自定义整数序列

来自分类Dev

如何在自定义UIView中从ViewController传递数据

来自分类Dev

如何在“自定义键盘”中输入自定义字体作为输入

来自分类Dev

如何将对象属性作为参数传递给Struts自定义验证器

来自分类常见问题

如何将System.Xml.XmlElement作为自定义Powershell函数的管道参数传递?

来自分类Dev

车把:如何将@index作为参数传递给自定义助手

来自分类Dev

如何从外部触发的自定义插件内部获取事件而不将其作为参数传递?

来自分类Dev

如何将自定义类型作为参数传递给已编译的cmdlet?

来自分类Dev

如何将System.Xml.XmlElement作为自定义Powershell函数的管道参数传递?

来自分类Dev

在bash中的自定义getopts脚本中将参数作为选项传递

来自分类Dev

C ++在线程中传递带有自定义对象的std :: function作为参数

来自分类Dev

将此上下文作为自定义验证器中的参数传递

Related 相关文章

  1. 1

    如何在自定义ImageView中将R.Drawable作为参数传递

  2. 2

    如何在传递对象作为参数的同时解析自定义类型

  3. 3

    如何在PostgreSQL中将自定义类型的多维数组作为函数参数传递?

  4. 4

    如何在SSRS中传递多个整数参数值

  5. 5

    自定义类型作为参数传递

  6. 6

    如何将函数作为参数传递给Javascript中的自定义函数

  7. 7

    如何在自定义短代码中以 URL 作为参数读取外部页面的标题?

  8. 8

    如何在自定义函数中添加函数作为参数 - swift?

  9. 9

    如何在Android自定义数据绑定中传递带有参数的函数

  10. 10

    如何在Android自定义数据绑定中传递带有参数的函数

  11. 11

    如何在Facebook Sharer链接中传递自定义参数

  12. 12

    如何在 CRM Dynamics 中为自定义操作传递“目标”参数

  13. 13

    如何在Android systrace中添加自定义标记?

  14. 14

    如何使用PHP在Twilio中传递自定义参数?

  15. 15

    如何在Dymola中定义记录的自定义参数?

  16. 16

    将图像作为意图传递给其他活动中的自定义标记

  17. 17

    如何在JSP的Java函数中将Struts2属性标记作为参数传递?

  18. 18

    如何在C ++中创建自定义整数序列

  19. 19

    如何在自定义UIView中从ViewController传递数据

  20. 20

    如何在“自定义键盘”中输入自定义字体作为输入

  21. 21

    如何将对象属性作为参数传递给Struts自定义验证器

  22. 22

    如何将System.Xml.XmlElement作为自定义Powershell函数的管道参数传递?

  23. 23

    车把:如何将@index作为参数传递给自定义助手

  24. 24

    如何从外部触发的自定义插件内部获取事件而不将其作为参数传递?

  25. 25

    如何将自定义类型作为参数传递给已编译的cmdlet?

  26. 26

    如何将System.Xml.XmlElement作为自定义Powershell函数的管道参数传递?

  27. 27

    在bash中的自定义getopts脚本中将参数作为选项传递

  28. 28

    C ++在线程中传递带有自定义对象的std :: function作为参数

  29. 29

    将此上下文作为自定义验证器中的参数传递

热门标签

归档