• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Java Web przekazanie parametru z JSP

Object Storage Arubacloud
0 głosów
360 wizyt
pytanie zadane 25 lipca 2017 w Java przez lewy Obywatel (1,260 p.)
WItam jak moze pobrac parametr z jsp i przekazac np do kontrolera lub servletu chodzi mi mianowicie o cos takiego

dostaje wartosc w jsp w postaci      ${kategoria.id} i chce ta wartosc pobrac w Stringu np przez request.getAttribite()

ale nie wiem za bardzo jak to poprawnie napisac i czy lepiej to zrobic inna metoda zeby pozniej ten parametr odebrac . Problem mam taki ze zwykly napis czy liczbe odebrac jest latwo ale gdy wchodzi w gre ${kategoria.id} kod z $ to potrzebuje waszej pomocy . z gory dzieki

1 odpowiedź

0 głosów
odpowiedź 25 lipca 2017 przez Jonki Dyskutant (8,180 p.)
Nie powinno mieć coś takiego miejsca. Ale skoro na siłę próbujesz coś takiego osiągnąć, to jedyny sposób to otagować te dane, nadać identyfikator i wysłać request np. za pomocą ajax lub angular.
komentarz 26 lipca 2017 przez lewy Obywatel (1,260 p.)
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
	<h1>Forum</h1>
	<table border="1">
		<tr>
			<th width="200">Temat</th>
			<th width="200">Datat</th>
			<th width="200">Autor</th>
		</tr>
		<c:forEach var="temat" items="${tematy}">
			<tr>
				<th>
					<c:url var="url" scope="page" value="/temat">
						<c:param name="id" value="${temat.id}"/>
					</c:url>
					<a href="${url}">${temat.tytul}</a>
				</th>
				<th><fmt:formatDate value="${temat.data}" dateStyle="short" timeStyle="short"/>
				<th>${temat.uzytkownik.login}</th>
			</tr>
		</c:forEach>	
	</table>
	<c:url value="/nowyTemat" var="urlNowyTemat" scope="page"/>
	<form action="${urlNowyTemat}">
		<input type="submit" value="Nowy temat"/>
	</form>
	<br/>
	<a href="wyloguj">Wyloguj</a><br/><br/>
	
KATEGORIE: </br><br/>
	<c:forEach var="kategoria" items="${kategorie}">
			<tr>
				<td>

					${kategoria.id}
				
					<c:url var="url" scope="page" value="/tematKategoria">
						<c:param name="idd" value="${kategoria.id}"/>
					</c:url>
					<a href="${url}">${kategoria.nazwa}</a>-----------------${ilosc}<br/><br/>	
				</td>
			</tr>
	</c:forEach>
</body>
</html>
package pl.forum.controllers;

import java.util.Date;
import java.util.List;

import javax.persistence.NoResultException;
import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;


import pl.forum.encje.Uzytkownik;
import pl.forum.dao.IKategoria;
import pl.forum.dao.ITemat;
import pl.forum.dao.IUzytkownik;
import pl.forum.encje.Kategoria;
import pl.forum.encje.Temat;

@Controller
public class indexController {

	@Autowired
	ITemat iTemat;
	@Autowired
	IKategoria iKategoria;
	@Autowired
	IUzytkownik iUzytkownik;

	@RequestMapping("/index")
	public String home(Model model, HttpServletRequest request) {
		String id = request.getParameter("name");
		
		List iloscTematow = iTemat.pobierzIloscTematowWKategori(id);
		model.addAttribute("ilosc",iloscTematow);
		List<Temat> tematy = iTemat.pobierzTematy();
		model.addAttribute("tematy", tematy);
		List<Kategoria> kategorie = iKategoria.pobierzKategorie();
		model.addAttribute("kategorie", kategorie);

		return "index";
	}

	@RequestMapping("/wyloguj")
	public String wyloguj(Model model) {
		return "login";
	}

	@RequestMapping("/rejestruj")
	public String rejestracja(Model model) {
		return "rejestracja";
	}

	@RequestMapping("/login")
	public String login(Model model) {
		return "login";
	}

	@RequestMapping("/temat")
	public String temat(Model model, HttpServletRequest request) {
		String stringId = request.getParameter("id");
		if (stringId != null) {
			int id = Integer.parseInt(stringId);
			Temat t = iTemat.pobierzTemat(id);
			model.addAttribute("temat", t);
		}

		return "temat";
	}

	@RequestMapping("/tematKategoria")
	public String tematKategoria(Model model, HttpServletRequest request) {
		String idd = request.getParameter("idd");
		String id = "1";
		List iloscTematow = iTemat.pobierzIloscTematowWKategori(id);
		model.addAttribute("ilosc",iloscTematow);
		List<Kategoria> kategorie = iKategoria.pobierzKategorie();
		model.addAttribute("kategorie", kategorie);
		List<Temat> tematy = iTemat.pobierzPoKategori(idd);
		model.addAttribute("tematy", tematy);
		return "indexKategoria";
	}

	@RequestMapping(value = "/nowyTemat", method = RequestMethod.POST)
	public String nowyTemat(Model model, HttpServletRequest request) {
		String tytul = request.getParameter("tytul");
		String tresc = request.getParameter("tresc");
		String StringKategoria = request.getParameter("kategoria");
		List<Kategoria> kategorie = iKategoria.pobierzKategorie();
		model.addAttribute("kategorie", kategorie);
		if (!"".equals(tytul) && !"".equals(tresc)) {
			Date d = new Date();
			int id = Integer.parseInt(StringKategoria);
			Kategoria kategoria = iKategoria.pobierzKategorie(id);

			Temat temat = new Temat();
			temat.setData(d);
			temat.setTresc(tresc);
			temat.setTytul(tytul);

			temat.setKategoria(kategoria);
			if (iTemat.dodajTemat(temat))
				return "redirect:http://localhost:8087/forum5//temat?id=" + temat.getId();
		}
		return "nowyTemat";
	}

	@RequestMapping(value = "/nowyTemat", method = RequestMethod.GET)
	public String nowyTematt(Model model) {
		List<Kategoria> kategorie = iKategoria.pobierzKategorie();
		model.addAttribute("kategorie", kategorie);
		return "nowyTemat";
	}
	@RequestMapping(value ="/rejestruj", method = RequestMethod.POST)
	public String Rejestracja(Model model, HttpServletRequest request, HttpServletRequest response) {
		String login = request.getParameter("login");
		String haslo = request.getParameter("haslo");
		String haslo2 = request.getParameter("haslo2");
		if (login != null && haslo != null && haslo2 != null && haslo.equals(haslo2) && !"".equals(haslo)) {
		if(iUzytkownik.pobierzPoLoginie(login)!= null) {
			
			request.setAttribute("blad", "taki login juz istnieje !!!");
			
		}else {
			Uzytkownik u = new Uzytkownik();
			u.setLogin(login);
			u.setHaslo(haslo);
			
		if (iUzytkownik.dodajUzytkownika(u))
			return "redirect:http://localhost:8087/forum5//login";
		else
			request.setAttribute("blad", "Nie udało się zakonczyc rejestracji !!!");
		}
	}else
		request.setAttribute("blad", "Bład podczas Rejestracji !!!");
		return "rejestracja";
}
}

 

komentarz 26 lipca 2017 przez lewy Obywatel (1,260 p.)
czyli cos tu jest bledzie zrobione mozesz zerknac ? ogolnie na kod
komentarz 26 lipca 2017 przez lewy Obywatel (1,260 p.)

chyba juz mi pomagales wczesniej co zrobilem kod gdzie pobieralem dao przez requesty teraz od paru dni ucze sie springa i chce to zrobic w springu jak mi doradziliscie a wyglada to tak podam tylko przyklad Tematów .

package pl.forum.dao;

import java.util.List;

import pl.forum.encje.Temat;

public interface ITemat {

	public List<Temat> pobierzTematy();
	public boolean dodajTemat(Temat t);
	public Temat pobierzTemat(int id);
	public List<Temat> pobierzPoKategori(String id);
	public List pobierzIloscTematowWKategori(String id);
	
}
---------------------------------------------------------------------------------------
package pl.forum.dao;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
import javax.persistence.PersistenceContext;
import javax.transaction.Transactional;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import pl.forum.encje.Kategoria;
import pl.forum.encje.Temat;

@Repository
@Transactional
public class ITematImpl implements ITemat {
	@Autowired
	SessionFactory sessionFactory;

	@Override
	public List<Temat> pobierzTematy() {
		Session session = sessionFactory.getCurrentSession();
		Query query = session.createQuery("from Temat t ORDER BY t.data DESC");
		List<Temat> tematlist = query.list();
		session.flush();
		return tematlist;
	}

	@Override
	public boolean dodajTemat(Temat t){
		Session session = sessionFactory.openSession();
		Transaction tx = session.beginTransaction();
		try{
			session.persist(t);
			tx.commit();
			return true;
		}catch(Exception e){
			e.printStackTrace();
			tx.rollback();
			return false;
		}
	}
	@Override
	public Temat pobierzTemat(int id){
		Session session = sessionFactory.openSession();
		return (Temat) session.get(Temat.class, id);
		}
	@Override
	public List<Temat> pobierzPoKategori(String id){
		Session session = sessionFactory.getCurrentSession();
		Query query = session.createQuery("from pl.forum.encje.Temat t where t.kategoria= :id");
		query.setString("id", id);
		List<Temat> tematlist = query.list();
		session.flush();
		return tematlist;
	}
	@Override
	public List pobierzIloscTematowWKategori(String id){
		Session session = sessionFactory.getCurrentSession();
		Query query = session.createQuery("select count(t) from pl.forum.encje.Temat t where t.kategoria= :id");
		query.setString("id", id);
		List tematilosc = query.list();
		session.flush();
		return tematilosc;
	}
}

 

Podobne pytania

0 głosów
1 odpowiedź 203 wizyt
0 głosów
1 odpowiedź 602 wizyt
pytanie zadane 31 sierpnia 2017 w Java przez lewy Obywatel (1,260 p.)
0 głosów
1 odpowiedź 410 wizyt
pytanie zadane 21 listopada 2015 w Java przez Boshi VIP (100,240 p.)

92,572 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...