Generowanie obrazka w pliku .jsp ze zmiennej (URL)

0

Witam, chciałbym w swoim projekcie w Springu generować obrazek w pliku .jsp ze zmiennej (URL) a następnie wyświetlać go na stronie. Zwiedziłem chyba wszystkie tematy na stacku i żadna nie przedstawiała (jak się domyślam) banalnego rozwiązania problemu.
Takie rozwiązanie niestety nie działa:

<img src="${urlImage}" width="100" height="100">
0

Nikt nie wie?

1

Raczej nikt nie rozumie twojego pytania.

  1. Co to znaczy "generować obrazek ze zmiennej"?
  2. Co to znaczy "nie działa".
  3. Wszystkie parametry których chcesz uzywać w szablonie jstl muszą zostać wysłane z kontrolera!
0
Shalom napisał(a):

Raczej nikt nie rozumie twojego pytania.

  1. Co to znaczy "generować obrazek ze zmiennej"?
  2. Co to znaczy "nie działa".
  3. Wszystkie parametry których chcesz uzywać w szablonie jstl muszą zostać wysłane z kontrolera!
  1. Mam tutaj na myśli wyświetlanie obrazka ze zmiennej typu string (lub url).
  2. Kod:
    Controller
@Controller
public class HomeController {

	private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
	public String imageUrl;

	private Image image;

	/**
	 * Simply selects the home view to render by returning its name.
	 * 
	 * @throws IOException
	 */
	@RequestMapping(value = "/{instagramImage}", method = RequestMethod.GET)
	public String home(Locale locale, Model model, @PathVariable String instagramImage) throws IOException {
		logger.info("Welcome home! The client locale is {}.", locale);
		logger.info(imageUrl);

		Date date = new Date();
		DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);

		String formattedDate = dateFormat.format(date);
		imageUrl = "i.imgur.com/eB5TD9q.jpg";

		model.addAttribute("imageUrl");
		model.addAttribute("serverTime", formattedDate);

		return "home";
	}

}

JSP

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page session="false" %>
<%@ taglib prefix="s" uri="http://www.springframework.org/tags" %>

<html>
<head>
	<title>Home</title>
</head>
<body>
<h1>
	Hello world!  
</h1>

<P>  The time on the server is ${serverTime}. </P>

 This page receives the values you specified, and creates a URL that contains
    them.
    <p />

<img src="${imageUrl}" width="100" height="100">

</body>
</html>

Obrazek się nie wyświetla.

0
gimbaz napisał(a):

ehh
http://www.w3schools.com/html/tryit.asp?filename=tryhtml_images_w3schools

gdzie w swoim url masz http etc?

Poprawiłem jak trzeba niestety nadal nie działa jak powinno.

<img src="${imageUrl}" alt="W3Schools.com"   style="width:104px;height:142px;">

Wartość imageUrl = http://www.w3schools.com/images/w3schools_green.jpg

1

No dobra, powoli gdzieś dochodzimy.

  1. Kwestia estetyki ale nie przyjmuj w kontrolerze obiektu Model, a zamiast tego z kontrolera zwracaj ModelAndView do którego wrzucisz dane. To trochę bardziej eleganckie rozwiązanie.
  2. Brakuje ci http:// w tym URLu i html zwyczajnie go nie ładuje. Twój problem to nieznajomość htmla a robisz tu temat i Javie, Springu i jstl ;)

edit: no to pokaż teraz jaki html ci się wygenerował na stronie.

0
Shalom napisał(a):

No dobra, powoli gdzieś dochodzimy.

  1. Kwestia estetyki ale nie przyjmuj w kontrolerze obiektu Model, a zamiast tego z kontrolera zwracaj ModelAndView do którego wrzucisz dane. To trochę bardziej eleganckie rozwiązanie.
  2. Brakuje ci http:// w tym URLu i html zwyczajnie go nie ładuje. Twój problem to nieznajomość htmla a robisz tu temat i Javie, Springu i jstl ;)

edit: no to pokaż teraz jaki html ci się wygenerował na stronie.

  1. Dzięki, zapamiętam na przyszłość.
  2. Jest dodany, niestety nadal nic.
    Wydaje mi się, że problem tkwi w przekazywaniu zmiennej do widoku. Nieznajomość htmla? Nie mówię nie, znam podstawy, http:// był już dodany przed ostatnim postem.

Wrzucam jeszcze raz poprawiony kod.
Controller:

@Controller
public class HomeController {

	private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
	public String imageUrl;
	/**
	 * Simply selects the home view to render by returning its name.
	 * 
	 * @throws IOException
	 */
	@RequestMapping(value = "/{instagramImage}", method = RequestMethod.GET)
	public String home(Locale locale, Model model, @PathVariable String instagramImage) throws IOException {
		logger.info("Welcome home! The client locale is {}.", locale);
		logger.info(imageUrl);

		Date date = new Date();
		DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);

		String formattedDate = dateFormat.format(date);
		imageUrl = "http://www.w3schools.com/images/w3schools_green.jpg";

		model.addAttribute("imageUrl");
		model.addAttribute("serverTime", formattedDate);

		return "home";
	}

}
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page session="false" %>
<%@ taglib prefix="s" uri="http://www.springframework.org/tags" %>

<html>
<head>
	<title>Home</title>
</head>
<body>
<h1>
	Hello world!  
</h1>

<P>  The time on the server is ${serverTime}. </P>

 This page receives the values you specified, and creates a URL that contains
    them.
    <p />



<img src="${imageUrl}" alt="W3Schools.com"   style="width:104px;height:142px;">



</body>
</html>
0

Problem rozwiązany. :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1