Tomcat устанавливает URL-адрес и загружает файл виртуальной машины velocity вместо index.html

#java #spring #tomcat

#java #spring #tomcat

Вопрос:

Я хочу загрузить файл виртуальной машины в URL mysite.com/test/ . Я поместил test.vm in /webapps/ROOT/test/ . Но я получаю ошибку 404. Если я создаю index.html , то это работает, но я хочу загрузить test.vm .

В Tomcat web.xml Я создал путь.

 <servlet-mapping>
  <servlet-name>/application/myapp-web</servlet-name>
  <url-pattern>/test/*</url-pattern>
</servlet-mapping>
  

И в my-app-servlet.xml я также создал распознаватель.

 <bean id="viewResolver-test"
        class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">
        <property name="cache" value="false" />
        <property name="prefix" value="" />
        <property name="suffix" value=".vm" />
</bean>
  

Ответ №1:

Я использую velocity внутри Spring следующим образом:

 String template = ........;


Velocity.init();
VelocityContext velContext = new VelocityContext();

StringWriter w = new StringWriter();
            
Velocity.evaluate( velContext, w, "mystring", template);  
String html = w.toString();   
  

где шаблон строки — это строка, содержащая модель *.vm . Я обычно считываю строку из базы данных, но если вы хотите прочитать файл, вы можете поместить его в /src/main/resources и прочитать его следующим образом

 InputStream is = getClass().getResourceAsStream("path-inside-resources-dir.vm");
//Logic to move a stream contect into a String valiable
  

Я надеюсь, что это может помочь