Vue+ueditor+springBoot 자체 사용 요약

서론 회사의 프로젝트는 서식 있는 텍스트 편집 상자를 사용해야 하며 Baidu의 ueditor는 강력하도록 지정됩니다. 그런 다음 사용하십시오. 회사가 앞뒤로 분리되어 있기 때문에 별도로 진행해야 합니다.

첫 번째 단계는 ueditor를 다운로드하는 것입니다.

우리가 사용하고자 하는 것은 UTF8-jsp 버전입니다.
다운로드 주소를 클릭하여 다운로드하십시오
여기에 이미지 설명 삽입
. jsp 폴더와 index.html 파일을 제외한 모든 파일을 프론트엔드 디렉토리의 static 폴더에 아래와 같이 복사하십시오.
여기에 이미지 설명 삽입

두 번째 단계는 전경 구성 요소와 참조를 캡슐화하는 것입니다.

컴포넌트 코드는 다음과 같습니다

<template>
  <div>
    <script id="editor" type="text/plain"></script>
  </div>
</template>

<script>
export default {
    
    
  name: "UE",
  data() {
    
    
    return {
    
    
      editor: null,
    };
  },
  props: {
    
    
    defaultMsg: {
    
    
      type: String,
      default: "",
    },
    config: {
    
    
      type: Object,
    },
  },
  mounted() {
    
    
    const _this = this;
    this.editor = UE.getEditor("editor", this.config); // 初始化UE
    this.editor.addListener("ready", function () {
    
    
      _this.editor.setContent(_this.defaultMsg); // 确保UE加载完成后,放入内容。
    });
  },
  watch: {
    
    
    defaultMsg(newVal) {
    
    
      this.editor.setContent(newVal);
    },
  },
  methods: {
    
    
    getUEContent() {
    
    
      // 获取内容方法
      return this.editor.getContent();
    },
    setText(con) {
    
    
      const _this = this;
      _this.editor.setContent(con);
    },
  },
  destroyed() {
    
    
    this.editor.destroy();
  },
};
</script>

<style scoped>
</style>```
然后 修改vue项目的main.js 加入以下引用

```bash
import '../static/ueditor//ueditor.config'
import '../static/ueditor/ueditor.all'
import '../static/ueditor/lang/zh-cn/zh-cn'
import '../static/ueditor/ueditor.parse.min'


여기에 이미지 설명 삽입
정적 ueditor 아래에 배치하므로 ueditor.config.js의 UEDITOR_HOME_URL을 수정합니다.

그런 다음 사용하려는 "@/components/ue"에서 구성 요소 가져오기 편집기를 소개합니다
. 자신의 경로에 따라 참조하십시오.

<editor :defaultMsg="form.content" ref="ue"></editor>

이 때 서식 있는 텍스트 편집 상자를 표시할 수 있지만 백엔드 구성이 필요하기 때문에 이미지 업로드 기능을 사용할 수 없습니다.
여기에 이미지 설명 삽입
여기에 해결해야 할 작은 버그가 있습니다.사진을 업로드하기 위해 클릭했지만 사진을 업로드하는 팝업 상자가 가려지고 당겨지면 ueditor.config.js의 zIndex 매개 변수를 9999로 수정하십시오.
여기에 이미지 설명 삽입

세 번째 단계 백엔드 구성

  • 준비:
    이전에 다운로드한 ueditor의 jsp에 있는 config.json 파일을 프로젝트 리소스에 넣습니다.
    여기에 이미지 설명 삽입

여기에 이미지 설명 삽입
그런 다음 lib 에 여러 jar 패키지가 있음을 확인할 수 있으므로
여기에 이미지 설명 삽입
여기에서 pom 형식으로 가져옵니다.

<dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
			<version>2.4</version>
		</dependency>
		<dependency>
			<groupId>commons-codec</groupId>
			<artifactId>commons-codec</artifactId>
			<version>1.10</version>
		</dependency>
			<dependency>
			<groupId>commons-fileupload</groupId>
			<artifactId>commons-fileupload</artifactId>
			<version>1.3.1</version>
		</dependency>

5개의 jar 패키지, 사실 이 3개를 소개하면 충분합니다.

  • 준비 작업 완료 후: 이미지 업로드 구성에 백엔드가 구성에 참여해야 함 먼저
    프론트엔드 vue 프로젝트 편집기의 ueditor.config.js에서 serverUrl
    여기에 이미지 설명 삽입
    구성을 변경합니다.
@RestController
@RequestMapping("ueditor")
public class UeController {
    
    

    @RequestMapping(value = "config")
    public void enterUE(HttpServletRequest request, HttpServletResponse response) {
    
    
        try {
    
    
            request.setCharacterEncoding("utf-8");
        } catch (UnsupportedEncodingException e) {
    
    
            e.printStackTrace();
        }
        response.setHeader("Content-Type", "text/html");
        //String rootPath = request.getSession().getServletContext().getRealPath("/");mvc项目获取路径
        String rootPathS = ClassUtils.getDefaultClassLoader().getResource("").getPath();
        try {
    
    
            String exec = new ActionEnter(request, rootPathS).exec();
            PrintWriter writer = response.getWriter();
            writer.write(exec);
            writer.flush();
            writer.close();
        } catch (IOException e) {
    
    
            e.printStackTrace();
        }
    }
}

ActionEnter는 에디터에서 다운로드 한 Java 소스 코드 를 우리 프로젝트에 복사해야 하는 링크
입니다 . 나중에 BinaryUploader 파일에서 이 몇 군데만 변경하고 실제 상황에 따라 파일을 저장하면 됩니다.


여기에 이미지 설명 삽입

여기에 이미지 설명 삽입

사용자 지정하려면 다음과 같이 코드 흐름을 알아야 합니다. 변경이 필요하지 않으면 건너뛰십시오.
여기에 이미지 설명 삽입
여기에 이미지 설명 삽입
여기에 이미지 설명 삽입

여기에 이미지 설명 삽입
여기에 이미지 설명 삽입
여기에 이미지 설명 삽입
위의 그림은 로컬 읽기에만 해당되며 Linux에서는 읽을 수 없습니다.
아래 수정:

  private String getConfigPath() {
        InputStream is = this.getClass().getResourceAsStream("/" + ConfigManager.configFileName);
        BufferedReader br = new BufferedReader(new InputStreamReader(is));
        String s = "";
        String configContentStr = "";
        try {
            while ((s = br.readLine()) != null) {
                configContentStr = configContentStr + s;
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return configContentStr;
    }

파일의 내용은 여기에서 읽었으므로 다섯 번째 단계에서 읽을 필요가 없습니다. this.readFile을 제거하십시오.여기에 이미지 설명 삽입

모든 구성이 완료되면 ueditor의 컨트롤러 경로를 직접 방문하여 구성이 완료되었는지 확인할 수 있습니다.

http://localhost:8101/ueditor/config?action=config&noCache=1627864262730

여기에 이미지 설명 삽입
성공적인 json을 읽은 후 반환되는 결과가 아니라면 json 파일을 성공적으로 읽지 못한 것이 문제입니다.

위의 백엔드 구성이 완료되면 인터페이스가 연결됩니다. 그러면 상황을 파악할 수 있습니다..
여기에 이미지 설명 삽입
이때 다중 이미지 업로드가 구현되었으며 단일 이미지 업로드는 설명하지 않습니다.

이때 프런트 엔드에서 얻은 리치 텍스트 편집 상자의 내용은

 this.$refs.ue.getUEContent();

성공적으로 저장한 후 백엔드 데이터베이스에 저장된 결과는
여기에 이미지 설명 삽입
지금까지 서식 있는 텍스트 상자 사용이 끝났습니다. 다른 것이 아니라 자신의 사용 과정을 기록하십시오.

추천

출처blog.csdn.net/weixin_43832604/article/details/119323351