powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Freemarker
4 сообщений из 4, страница 1 из 1
Freemarker
    #38945304
goldenhawk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пробую использовать Freemarker
Выдается такая ошибка
javax.servlet.ServletException: Could not resolve view with name 'hello' in servlet with name 'TrainingCenterServlet'

pom.xml

Код: xml
1.
2.
3.
4.
5.
 <dependency>
	<groupId>org.freemarker</groupId>
	<artifactId>freemarker</artifactId>
	<version>2.3.16</version>
</dependency>



web.xml

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
<web-app>
  <display-name>Archetype Created Web Application</display-name>
  
  <servlet>
		<servlet-name>TrainingCenterServlet</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>/WEB-INF/spring-config.xml</param-value>
		</init-param>
	</servlet>

	<servlet-mapping>
		<servlet-name>TrainingCenterServlet</servlet-name>
		<url-pattern>*.html</url-pattern>
	</servlet-mapping>

<!-- 	<welcome-file-list> -->
<!-- 		<welcome-file>reg.html</welcome-file> -->
<!-- 	</welcome-file-list> -->
  

  <session-config>
		<session-timeout>5</session-timeout>
	</session-config>
  
</web-app>



spring-config.xml

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:security="http://www.springframework.org/schema/security"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xmlns:p="http://www.springframework.org/schema/p"
	xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd">

	<mvc:annotation-driven/>
	<context:component-scan base-package="com.mycompany"/>
	 
<!-- 	 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"  -->
<!-- 	 p:order="2" p:prefix="/" p:suffix=".jsp" /> -->
	 
	 <!-- freemarker config -->
    <bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
      <property name="templateLoaderPath" value="/WEB-INF/">
    </property></bean>
     
    <!-- 
      View resolvers can also be configured with ResourceBundles or XML files. If you need
      different view resolving based on Locale, you have to use the resource bundle resolver.
    -->
    
    <bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver" 
	p:cache="true" p:prefix="/" p:suffix=".ftl" />
    
</beans>



hello.ftl

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<html>
<body>
<h2>Hello- -World!</h2>

Hello, ${name}

<#list names as name>
    Hello, ${name}
</#list>

</body>
</html>




TrainingCenter.java

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
package com.mycompany;

import java.util.ArrayList;

import java.util.List;

import javax.servlet.http.HttpSession;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class TrainingCenter {
	 
	@RequestMapping(value = "/hello")
	public String regGet(Model model, HttpSession session ) {
             
        model.addAttribute("name", "ANDRE");
        List<String> names = new ArrayList<String>();
        names.add("John");
        names.add("Sam");
        names.add("Vasja");
        model.addAttribute("names", names);
        
		return "hello";
	}
	

}




xml файлы лежат в WEB-INF
ftl в webapp.
...
Рейтинг: 0 / 0
Freemarker
    #38945356
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подозрение такое.

Джавадок по FreeMarkerViewResolver говорит:
FreeMarkerViewResolverFreeMarkerViewResolver will check for the existence of the specified template resources and only return a non-null View object if the template was actually found.
Шаблон лежит в /, а в конфиге Freemarker сказано искать начиная с /WEB-INF
FreeMarkerViewResolver спрашивает у Freemarker шаблон /hello.ftl, тот ничего в /WEB-INF не находит, и FreeMarkerViewResolver сообщает, что такого View нет.
...
Рейтинг: 0 / 0
Freemarker
    #38945378
goldenhawk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexander A. SakПодозрение такое.

Джавадок по FreeMarkerViewResolver говорит:
FreeMarkerViewResolverFreeMarkerViewResolver will check for the existence of the specified template resources and only return a non-null View object if the template was actually found.
Шаблон лежит в /, а в конфиге Freemarker сказано искать начиная с /WEB-INF
FreeMarkerViewResolver спрашивает у Freemarker шаблон /hello.ftl, тот ничего в /WEB-INF не находит, и FreeMarkerViewResolver сообщает, что такого View нет.

Исправил, получилось.Спасибо

Еще вопрос, а можно ли использовать ftl и jsp ? как это прописать?
...
Рейтинг: 0 / 0
Freemarker
    #38945465
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
goldenhawkЕще вопрос, а можно ли использовать ftl и jsp ? как это прописать?

Использовать можно, только по вопросу не понятно что именно имеется в виду. Если требуется, чтобы при отсутствии шаблона FTL делался поиск JSP, то вроде достаточно добавить в контекст еще один ViewResolver:

http://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/mvc.html#mvc-viewresolver-chaining 17.5.2 Chaining ViewResolvers

Spring supports multiple view resolvers. Thus you can chain resolvers and, for example, override specific views in certain circumstances. You chain view resolvers by adding more than one resolver to your application context and, if necessary, by setting the order property to specify ordering
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Freemarker
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]