编写 JSTL 表达式加字符串的正确方法

问题描述

伙计们,如果这是一个愚蠢的问题,我深表歉意,但我找不到任何有关如何执行此操作的示例。

我的表情目前是 ${fn:substringBefore(var1,\"@\")}@domain.com

我尝试了多种在末尾添加“@domain”字符串的方法,但似乎都不起作用。

你能告诉我这是否至少是可能的吗?

解决方法

免责声明:我从未使用过 JSTL,但通过阅读在线提供的材料,我已经学习了很多技术,其中大部分是单独学习的。所以这个答案更多地是关于在我陷入困境时解决这些问题的思考过程。

在学习新技术时,通常最好从文档和示例开始。在这种情况下,只需搜索 jstl fn:substringBefore,我就找到了 this page,其中 fn-substringbefore section 具有以下示例:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>  
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>  
<html>  
<head>  
<title>Using JSTL Function </title>  
</head>  
<body>  
<c:set var="string" value="Hi,This is JAVATPOINT.COM developed by SONOO JAISWAL."/>  
${fn:substringBefore(string,"developed")}  
</body>  
</html>  

因此似乎应该通过引用将在第二个参数处拆分的字符串(在示例的前一行中找到)来使用此函数,返回拆分的第一部分。

此外 "-s 在示例中没有被转义,所以我会尝试类似的东西。

${fn:substringBefore(referenceToFullEmailAddress,"@")}

所有这些都假设您要实现的是检索电子邮件地址的第一部分,在 @domain.com 部分之前。 这也是为什么在您的问题中包含更多上下文始终是一个好习惯的原因。