【问题标题】:JSTL Split method not working properly?JSTL Split 方法无法正常工作?
【发布时间】:2016-12-29 09:44:04
【问题描述】:

我正在尝试使用 JSTL 方法拆分字符串,并根据四个引号 '''' 拆分它。详情如下:

example = ''''THE FAMOUS DIAMONDS''''This is second string for the example''''/content/dam/rcq/mp_push_tank_style.jpg''''right''''
${fn:split(example,\"''''\")}
example[0]=THE FAMOUS DIAMONDS
example[1]=This is second string for the example
example[2]=/content/dam/abc/tank.jpg
example[3]=right

对于上面提到的字符串,它工作正常,但问题是每当它们在我的字符串中是 '(single quote) 时,它的功能就会中断。下面是例子

example = ''''THE FAMOUS DIAMONDS''''This is  string's contains single quote''''/content/dam/rcq/mp_push_tank_style.jpg''''right''''
${fn:split(example,\"''''\")}
example[0]=THE FAMOUS DIAMONDS
example[1]=This is  string
example[2]=s contains single quote
example[3]=/content/dam/abc/tank.jpg

现在,如您所见,示例 [2] 包含文本而不是图像路径。

任何人都可以帮忙,因为我无法更改拆分类型''''

提前致谢

【问题讨论】:

    标签: split jstl jstl-functions


    【解决方案1】:

    jstl-function fn:split() 中存在一个问题,使用 apostrophe 代替您可以使用 scriptlet,其中拆分将完美运行。这是我为你做的:

    <c:set var="string1" value="''''THE FAMOUS DIAMONDS''''This is  string's contains single quote''''/content/dam/rcq/mp_push_tank_style.jpg''''right''''"/>
    <%
        String s=(String)pageContext.getAttribute("string1");
        String[] string = s.split("''''");
        pageContext.setAttribute("string",string);
     %>
    <c:set var="string2" value="${string}"/>
    <p>String(0) : ${string2[0]}</p>
    <p>String(1) : ${string2[1]}</p>
    <p>String(2) : ${string2[2]}</p>
    <p>String(3) : ${string2[3]}</p>
    <p>String(4) : ${string2[4]}</p>
    

    输出:

    String(0) :
    String(1) : THE FAMOUS DIAMONDS
    String(2) : This is string's contains single quote
    String(3) : /content/dam/rcq/mp_push_tank_style.jpg
    String(4) : right
    

    【讨论】: