well
Junho 5, 2012, 9:11am
#1
Bom dia pessoal, estou fazendo um sistema para um amigo meu (Dentista) e preciso fazer uma tela de orçamento com session. até ai blz.
Pow já fiz sessões para jogar um objeto na sessão, ex. Produto Clico em comprar ele joga em um carrinho na sessao. simples :).
Gostaria de saber se tem como eu criar dois combobox de objetos diferentes tipo: Dentes , Tratamento, seleciono o dente e depois o tratamento e envio os dois para a sessão.
é possivel fazer isso ou eu tenho que fazer sessões separadas e enviar um de cada vez?
Obrigado
vc pode criar uma classe @Component @SessionScoped que tem como atributos esses dois objetos, e usar essa classe para guardá-los.
well
Junho 5, 2012, 8:05pm
#3
Opa, salve salve Lucas.
fiz o que vc falou.
package br.com.dental.sessions;
import java.util.ArrayList;
import java.util.List;
import br.com.caelum.vraptor.ioc.Component;
import br.com.caelum.vraptor.ioc.SessionScoped;
import br.com.dental.modelo.Dente;
import br.com.dental.modelo.ItemTratamento;
import br.com.dental.modelo.Tratamento;
@Component
@SessionScoped
public class TratamentoSession {
private Tratamento tratamento;
private Dente dente;
private List<ItemTratamento> itensTratamento = new ArrayList<ItemTratamento>();
public List<ItemTratamento> getItensTratamentos() {
return itensTratamento;
}
public void setItensTratamento(List<ItemTratamento> itensTratamento) {
this.itensTratamento = itensTratamento;
}
public void adiciona(ItemTratamento itensTratamento) {
this.itensTratamento.add(itensTratamento);
}
public void remove(int indiceItem) {
@SuppressWarnings("unused")
ItemTratamento removido = itensTratamento.remove(indiceItem);
}
public Tratamento getTratamento() {
return tratamento;
}
public void setTratamento(Tratamento tratamento) {
this.tratamento = tratamento;
}
public List<ItemTratamento> getItensTratamento() {
return itensTratamento;
}
public Dente getDente() {
return dente;
}
public void setDente(Dente dente) {
this.dente = dente;
}
}
e a class itemTratamento
[code]package br.com.dental.modelo;
public class ItemTratamento {
private Tratamento tratamento;
private Dente dente;
public Tratamento getTratamento() {
return tratamento;
}
public void setTratamento(Tratamento tratamento) {
this.tratamento = tratamento;
}
public Dente getDente() {
return dente;
}
public void setDente(Dente dente) {
this.dente = dente;
}
}[/code]
ai fiz TratamentoSessionController
[code]package br.com.dental.sessions;
import java.util.ArrayList;
import java.util.List;
import br.com.caelum.vraptor.ioc.Component;
import br.com.caelum.vraptor.ioc.SessionScoped;
import br.com.dental.modelo.Dente;
import br.com.dental.modelo.ItemTratamento;
import br.com.dental.modelo.Tratamento;
@Component
@SessionScoped
public class TratamentoSession {
private Tratamento tratamento;
private Dente dente;
private List<ItemTratamento> itensTratamento = new ArrayList<ItemTratamento>();
public List<ItemTratamento> getItensTratamentos() {
return itensTratamento;
}
public void setItensTratamento(List<ItemTratamento> itensTratamento) {
this.itensTratamento = itensTratamento;
}
public void adiciona(ItemTratamento itensTratamento) {
this.itensTratamento.add(itensTratamento);
}
public void remove(int indiceItem) {
@SuppressWarnings("unused")
ItemTratamento removido = itensTratamento.remove(indiceItem);
}
public Tratamento getTratamento() {
return tratamento;
}
public void setTratamento(Tratamento tratamento) {
this.tratamento = tratamento;
}
public List<ItemTratamento> getItensTratamento() {
return itensTratamento;
}
public Dente getDente() {
return dente;
}
public void setDente(Dente dente) {
this.dente = dente;
}
}[/code]
e a JSP LISTA que ficou dentro da pasta tratamento. ai que eu acho que tenho que mudar mais não sei.
<%@ include file="/header.jspf" %>
<div id="gerar-receita">
<h3><a href="<c:url value="/tratamento-session" />" target="_blank">GERAR orca</a></h3>
<table class="receita">
<tbody>
<c:forEach items="${tratamentoSession.itensTratamento}" var="itensTratamento" varStatus="s">
<tr>
<td>${itensTratamento.tratamento.tratamento}</td>
<td>
<form action="<c:url value="/tratamento-session/${s.index}" />" class="form-ajuste" method="POST">
<button class="link-close" name="_method" title="Remover" value="DELETE"></button>
</form>
</td>
</tr>
</c:forEach>
</tbody>
<tfoot>
</tfoot>
</table>
</div>
<!-- fim do div orcamento -->
<div id="medicamentos">
<form action="<c:url value= "/tratamento-session" />" method="POST" class="form-ajuste" name="itensTratamento">
<select class="required" name="itensTratamento.tratamento.id" id="tratamento">
<option value="">SELECIONE O PACIENTE</option>
<c:forEach var="trat" items="${tratamentoList}">
<option value="${trat.id}">${trat.tratamento}</option>
</c:forEach>
</select>
<select class="required" name="itensTratamento.dente.id" id="tratamento">
<option value="">SELECIONE O PACIENTE</option>
<c:forEach var="dent" items="${denteList}">
<option value="${dent.id}">${dent.nome}</option>
</c:forEach>
</select>
<button class="link-add" type="submit" title="Adicionar"></button>
</form>
</div>
<%@ include file="/footer.jspf" %>
Só que só lista o tratamento o dente não lista(Sendo que o lista esta na pasta tratamento).
se eu colocar o lista na pasta Dente lista o dente e não lista o tratamento.
como eu faço para listar os dois e jogar os dois selecionados juntos na sessao.
Obrigado
well
Junho 6, 2012, 7:37am
#4
Opa lucas… consegui! joguei os dois na mesma sessao… qqr dúvida eu volto a postar… Obrigado
Posta ae como vc fez.
Eu estou tentando manter um list em sessao será que o processo é o mesmo ?
well
Outubro 15, 2015, 3:13pm
#6
Boa tarde amigo!
Não tenho mais o código, esse é um projeto antigo!
O meu também era uma lista, eu ia jogando vários itens um de cada vez em uma lista na sessão.