很多项目都需要到富文本来添加内容,就好比新闻啊,旅游景点之类的,都需要使用富文本去添加数据,然而怎么我这边就发现了两个问题
1)怎样将富文本的图片的 src 获取出来?
2)后台上传的时候用的是相对路径,前端显示需要的是最对路径
我下面就记录一下解决这两个问题的方法
1):怎么将富文本的图片的 src 获取出来?很简单,就一个工具即可
public static ListgetImgStr(String htmlStr) {
List list = new ArrayList<>();
String img= "";
Pattern p_image;
Matcher m_image;//String regEx_img = "]*?>";//图片链接地址
String regEx_img = "]*?>";
p_image=Pattern.compile(regEx_img, Pattern.CASE_INSENSITIVE);
m_image=p_image.matcher(htmlStr);while(m_image.find()) {//得到数据
img =m_image.group();//匹配中的src数据
Matcher m = Pattern.compile("src\\s*=\\s*\"?(.*?)(\"|>|\\s+)").matcher(img);while(m.find()) {
list.add(m.group(1));
}
}returnlist;
}
即可获取到以下结果
2)后台上传的时候用的是相对路径,前端显示需要的是最对路径,下面来看看我们怎么动态去修改富文本的 img 标签的 src ,也很简单,也是一个工具即可
这里需要一个叫做 jsoup 的 jar, maven 项目的话,直接引进来就行了
org.jsoup
jsoup
1.11.2
下面是工具类
public staticString documentBody (String newsBody) {
Element doc=Jsoup.parseBodyFragment(newsBody).body();
Elements pngs= doc.select("img[src]");
String httpHost= "http://192.168.0.100";for(Element element : pngs) {
String imgUrl= element.attr("src");if (imgUrl.trim().startsWith("/")) { //会去匹配我们富文本的图片的 src 的相对路径的首个字符,请注意一下
imgUrl =httpHost +imgUrl;
element.attr("src", imgUrl);
}
}return newsBody =doc.toString();
}
即可获取到以下结果
好了,以上就是这两个问题的解决方式
不喜勿喷!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!