Estou tentando escrever um txt quando uma página for acessada e quando o admin estiver logado, mas eu só consegui escrever até agora quando a página é acessada mas independente de ser admin ou não. Vejam o código.
<%@ include file="/WEB/jsp/include/incrt.jsp" %>
<%@page import="com.dts.Common"%>
<%@page import="com.dts.view.ShareUser"%>
<%@page import="java.io.*"%>
<tag:page dwr="IntialPage" js="view" onload="init">
<jsp:body>
<script type="text/javascript">
var isAdmin;
isAdmin = data.access == <c:out value="<%= ShareUser.ACCESS_ADMIN %>"/>;
if (isAdmin) { ... }
</script>
</jsp:body>
</tag:page>
<%
String str = "texto";
String nameOfTextFile = "imp.txt";
try {
PrintWriter pw = new PrintWriter(new FileOutputStream(nameOfTextFile));
pw.println(str);
pw.close();
} catch(IOException e) {
out.println(e.getMessage());
}
%>
Ok desse jeito eu consigo escrever o txt, mas eu só quero quando o admin estiver logado e a variável que pega esse valor(isAdmin) está num trecho de código em javascript e eu não tô sabendo manipular a coisa e não sei também se é possível. Sugestões?
eu noa estou vendo todo o seu codigo mais
coloca um alert e ve se a variável esta recebendo o valor…
abraço!!
sim a váriavel está recebendo o valor. Já havia feito teste com o alert e ele retornou “true”.
Diego, não sei da necessidade, mas já que você está trabalhando com o sistema, não seria interessante jogar se o usuário é admin ou não na sessão?
Por exemplo:
session.setAttribute("admin", true/false);
Fica mais facil manipular no seu sistema se o usuário é admin ou não sem ter que ficar verificando o tempo todo no dbs e é ou não.
Umav ez feito isso, é só chamar no teu javascript:
var isAdmin = ${admin};
if (isAdmin) { ... }
como o javascript lê true/false como o próprio java, é só lançar a variável.
Entendi a sugestão e é ótima porém tem um problema que eu não mencionei. Esse código é parte de um sistema já pronto e bem complexo, eu estou quebrando a cabeça pra ver como funciona e até onde entendi percebi essa parte do código que limita funções pra quem não é admin. Estou trabalhando em outras opções mas não está fácil. Mudando para o código tem essa expressão no código: <%= ShareUser.ACCESS_ADMIN %>
Quando passa a variavel no javascript para o isAdmin ele retorna true, porém dei um out.println() e ele retornou 3, não entendi nada. Por que minha ideia era criar uma outra variavel para ser processada server side ex:<!% boolean isadm = ShareUser.ACCESS_ADMIN; %>
por que do jeito que tá ele pega a expressão em java escreve “true” na variavel do javascript e isso só é processado no navegador, não dá pra jogar essa condição na minha função de escrever no txt que é executada no servidor.