Writing Cookie from Custom Tag
Hi Everyone.
I am attempting to write a cookie from a custom tag with the following code.
private void writeCookie(){
Cookie cookie = new Cookie("TEST", "cookie_value_from_tag");
cookie.setMaxAge(60*60*24*7* 52);
cookie.setComment("Test_CookieFromCuttomTag");
cookie.setPath("/student");
javax.servlet.http.HttpServletResponse resp = (javax.servlet.http.HttpServletResponse)pageContext.getResponse();
System.out.println("Adding test cookie from CustomTag");
resp.addCookie(cookie);
System.out.println("DONE Adding test cookie from CustomTag");
}The cookie never appears on my machine.
I see the messages that wrap the resp.addCookie() method
so I know the code is being called.
What am I doing Wrong?
My Browser is set to accept ALL cookies.
I am using Tomcat 4.1.27
Any and all help is greatly appreciated
Sean
Actually, the cookie is not writing when I am using <jsp:include>
It works fine when I do not use include
the jsp I am using to include is
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
xmlns:registration="urn:jsptld:/WEB-INF/enrollment.tld"
xmlns:html="urn:jsptld:/WEB-INF/struts-html.tld"
xmlns:logic="urn:jsptld:/WEB-INF/struts-logic.tld"
xmlns:bean="urn:jsptld:/WEB-INF/struts-bean.tld"
xmlns:common="urn:jsptld:/WEB-INF/common.tld"
version="2.0" >
<jsp:directive.page language="java" contentType="text/html;charset=UTF-8"/>
<html xmlns:jsp="http://java.sun.com/JSP/Page">
<body>
<jsp:include flush="true" page="forgotPasswordChallenge.jsp"/>
<jsp:include flush="true" page="new_forgotPassword.jsp"/>
<common:validation_message/>
</body>
</html>
</jsp:root>the custom tag is <common:validation_message/>
Any Ideas on why this is occuring?
Similar Messages
-
Finding message bundle from custom tag
I have a JSP page which has a <fmt:setBundle> to set the translations bundle. It also has a tag which I handle using a custom tag handler based on TagSupport. One of the attributes to this tag is a string which I need to look up in the message bundle, so I need to find the right message bundle as set at the top of the JSP page.
So putting the question succinctly, how, from custom tag handler code, do I find the message bundle the page is using?So putting the question succinctly, how, from custom tag handler code, do I find the message bundle the page is using? To answer your question:
The <fmt:setBundle> tag (according to the documentation:
Creates an i18n localization context and stores it in the scoped variable or the
javax.servlet.jsp.jstl.fmt.localizationContext configuration variableSo you can look up that configuration variable, and use its information to obtain the resource bundle name, or the Localization object which wraps the bundle.
Of course, thats the hard way...
You see the friendly folks who wrote the JSTL knew that there would be people who would want to do this.
So they wrote a helper class for us: [javax.servlet.jsp.jstl.fmt.LocaleSupport|http://java.sun.com/products/jsp/jstl/1.1/docs/api/javax/servlet/jsp/jstl/fmt/LocaleSupport.html]
A better question is actually:
How do I look up a message in the bundle set by JSTL <fmt:setBundle> when I am in a custom tag handler?The answer is:
LocaleSupport.getLocalizedMessage(pageContext, key)Its all in their (relatively readable) [JSTL specification|http://java.sun.com/products/jsp/jstl/reference/api/index.html]
cheers,
evnafets -
Hi,
I am unable to write a cookie from a portlet. From the portlet JSP I am
writing the cookie to response object and the cookie is not getting to the
client.
So How can I write a client-side cookie from a portlet JSP?
Thanks
Regards,
UDayUday,
The portal page is composed of many JSPs originating from portal.jsp. Portlets
are ultimately included via a <jsp:include> tag. This is what the JSP spec says
about <jsp:include>
"An included page only has access to the JspWriter object and it cannot set headers.
This precludes invoking methods like setCookie(). A request-time Exception will
be raised if this constraint is not satisfied. The constraint is equivalent to
the one imposed on the include() method of the RequestDispatcher class."
You will need to set your cookie from portal.jsp.
PJL
"Uday Tangs" <[email protected]> wrote:
Hi,
I am unable to write a cookie from a portlet. From the portlet JSP I
am
writing the cookie to response object and the cookie is not getting to
the
client.
So How can I write a client-side cookie from a portlet JSP?
Thanks
Regards,
UDay -
IsUserInRole() - return boolean from custom tag?
Hello
Im writing some custom tags extending TagSupport. At the moment my tags just create some collection and put it in the page scope for the jsp to access. (see example below)
I have a tag however that I would like to return a boolean for. This is specifically for checking isUserInRole();
I cant quite get my head around the idea of manipulating the page body or not and how this impacts writing the custom tags. If I want to return some value directly from my tag ie. a boolean value from isUserInRole(); is this manipulating the page body?
Is TagSupport the correct class to extend if I want to return a boolean value from my tag call.
Id appreciate any advice.
Thanks
Jon
public class refSuppliersTag extends TagSupport {
public int doStartTag() throws JspException {
try {
HashMap supplierMap = new HashMap();
supplierMap = (HashMap) referenceData.getSuppliers();
pageContext.setAttribute("suppliers", supplierMap);
} catch (Exception e) {
throw new JspException(e.toString());
return EVAL_PAGE;
------------------------------------------this is one way of designing your tag:
In JSTL
<my:login var="isAdminRole" role="admin"/>
<!-- test for it -->
<c:if test="${isAdminRole}">
yeah, you are admin user!
</c:if>
In Java
boolean isLoggedin = login();
session.setAttribute(var,isLoggedin);
// where "var" is a String tag attribute!
//...put the "boolean" result in "var", which is a session's parameter, request's parameter or whatever!
by Avatar Ng
[blog http://avatar21.superihost.com/ ]
Message was edited by:
Avatar_Ng -
Passing Values back from Custom Tag
I'm using custom tags, and I'm trying to pass back values to the JSP page from a tag which is iterating over values it gets from an Array. But for some reason I can't access the values.
Here is the Tag:
public class MemberHelper extends TagSupport implements IterationTag {
private Iterator iterator;
protected Tag parent;
protected PageContext pageContext;
public MemberHelper() {
super();
public void otherDoStartTagOperations() {
sfmember_prop_desc desc = new sfmember_prop_desc();
ArrayList allt = new ArrayList();
try {
allt = desc.GetAllCustom();
} catch (java.sql.SQLException ex) {}
if(allt.size() > 0)
iterator = allt.iterator();public void otherDoEndTagOperations() {
public boolean shouldEvaluateRestOfPageAfterEndTag() {
return true;
public int doStartTag() throws JspException, JspException {
otherDoStartTagOperations();
if (theBodyShouldBeEvaluated()) {
return EVAL_BODY_INCLUDE;
} else {
return SKIP_BODY;
public int doEndTag() throws JspException, JspException {
otherDoEndTagOperations();
if (shouldEvaluateRestOfPageAfterEndTag()) {
return EVAL_PAGE;
} else {
return SKIP_PAGE;
public int doAfterBody() throws JspException {
if (theBodyShouldBeEvaluatedAgain()) {
return EVAL_BODY_AGAIN;
} else {
return SKIP_BODY; -
Trying to get AuthenticationUser from custom tag
Hello, I'm trying to access the authentication username from a custom tag. The code we're using is this:
IPTSession session = (IPTSession)GetEnvironment().GetUserSession();
String authName = session.GetUser().GetAuthenticationUser();
But we get an exception:
com.plumtree.server.marshalers.PTException: -2147024891 - Error in function PTUser.GetAuthenticationUser (): -2147024891 - PLUMTREE authentication in use. AuthUser is user name.
What does this mean? Does anyone know how else to approach this?Are you trying to get login name or definition of the user present in user repository ?
Check these methods: GetUniqueAuthName() or GetLoginName(). -
Urgent-how to access custom tag from jsp tag
I have a problem accessing a custom tag from a jsp expression.
Details: I have a custom tag that returns a string variable. I need to access that variable from jsp expression <%%>.
Can any body help me?Tags don't "return" values as in the normal sense.
They can only support TEI (Tag Extra Information) that just stuffs a declared variable into the page's state.
For example, if the tag class had a public method called getValue(), you could do the following:
<xmp:mytag id="foo"/>
<%
out.println("value is " + foo.getValue());
%> -
Dynamic include in a custom tag, called from a jsp
Hello, I would like to be able to dynamically include other jsp's from within a custom tag that I create. is this possible?
in a jsp page i would just write <%@ include file="file.jsp" %> and all would be ok... but if i do an out.println( "<%@ include file=\"file.jsp\" %>" ); inside a custom tag bean then it doesn't work. it just prints out the command to the page as plain text.
I do understand why this is happening, but can anyone offer me a way around this problem?
Thanks in advance,
RandyThat's actually the same result as you get with a normal include - The method I suggested is a dynamic include similar to the <jsp:include> tag, not the <%@ include %> tag.
When you use a dynamic include, the included page is compiled and 'invoked' as serarately, and the result is what gets included, not the actual source. To get the behaviour you want would require an include directive (the <%@ include %> tag) which I don't think has an equivalence you can use inside a custom tag.
What you can do is pass attributes from the tag class like this:
pageContext.setAttribute(<name>, <object>, pageContext.REQUEST_SCOPE);
and then remove them after the include using pageContext.removeAttribute.
I'm not certain, but this implies that if you declare your variables with a <jsp:usebean> tag with request scope, instead of normal Java variable declarations, you should be able to use them in the page included by the custom tag.
*** in the jsp ***
<jsp:useBean id="myVar" scope="request" class="java.lang.String" />
<% myVar = "Something"; %>
// Now call the tag which uses the pageContext.include() mehtod.
*** end ***
*** in the include ***
<jsp:useBean id="myVar" scope="request" class="java.lang.String" />
<%= myVar + " something else" %>
*** end ***
Let me know if it works. -
Finding the custom tag name from inside the tag handler
Hello,
I searched the forum, but couldnt find the answer (or in the API). In my custom tag handler, I want to know what the name of the custom tag was. Is this possible?
Thanks in advance.
Chris
ps. Without parsing the .tld file... :)Hmm, that's unfortunate. Thanks a lot for your work. I had a feeling since it wasn't in the API that it wasn't possible. Here's why, and maybe they will add this feature later...
We are making our own tags for buttons on our app (the button will be an HTML table, with a clickable background, that looks like an image, but isnt).
The HTML designers want tags they can drag and drop to the screen in DreamWeaver, including visual feedback on what they dragged and dropped. So the tag <fast:blueButton>Continue</fast:blueButton> will show a blue button image in dreamWeaver with "Continue" as the text. There are a lot of parameters to set for each button, like height, width, border, etc. that will be configured in an XML config file for each button.
It would be nice if all the buttons we invent in the tld point to the same generic button class, and when the generic button class runs, sees which button called it, and gets its config from an XML file.
This way the designer could add more buttons with the tld and XML config, and no more java classes are needed. However, if a generic button is sent with a type param: <fast:button type="blue">Continue</fast:button> then there is no visual feedback in the tool (in the first case we could have set the fast:blueButton to be the image of a blue button) and it cant be picked from a list in the tool (the designer needs to remember which types exist). It seems not important to programmers, but for designers it is important.
Oh well, I will see if there is another way to NOT have tons of Java classes to support.
Thanks,
Chris -
Problem using jsp:include from inside a custom tag
Hi, All !
I have a problem using <jsp:include> from inside a custom tag. Exception is:
"java.lang.ClassCastException: weblogic.servlet.jsp.BodyContentImpl"
Apparently, weblogic tries to cast BodyContentImpl to JspWriterImpl and
could not do this. Is it a bug, since in the 1.1 spec is said: "The
BodyContent is a subclass of JspWriter that can be used to process body
evaluations so they can retrieved later on."
My code is:
<wfmklist:items>
<jsp:include page="item.jsp" flush="true"/>
</wfmklist:items>
This is an area of contention with WL. It is not so tolerant with regards to
the spec. I spent several days recently trying to convince it to accept the
specification in regards to bodies and includes and it appears to have
successfully rebuffed my efforts.
Frankly, this is very disappointing. It appears that some shortcuts were
taken on the way to JSP 1.1 support, and the result is a very hard-coded,
inflexible implementation. As I have not seen the implementation myself, I
hate to assume this, however one could posit that the term "interface" was a
foreign concept during the implementation, other than as some annoying
intermediary reference requiring an immediate cast to a specific Weblogic
class, which in turn is apparently required to be final or have many final
methods, as if being optimized for a JDK 1.02 JIT.
I am sorry that I don't have any positive suggestions other than to use a
URL object to come back in an execute the necessary "include" directly. You
lose all context (other than session) and that can cause its own problems.
However, you can generally get the URL approach to work, and you will
hopefully avoid further frustration.
Peace,
Cameron Purdy
Tangosol, Inc.
http://www.tangosol.com
Tangosol: How Weblogic applications are customized
"Denis" <[email protected]> wrote in message
news:[email protected]...
> Hi, All !
> I have a problem using <jsp:include> from inside a custom tag. Exception
is:
> "java.lang.ClassCastException: weblogic.servlet.jsp.BodyContentImpl"
>
> Apparently, weblogic tries to cast BodyContentImpl to JspWriterImpl and
> could not do this. Is it a bug, since in the 1.1 spec is said: "The
> BodyContent is a subclass of JspWriter that can be used to process body
> evaluations so they can retrieved later on."
>
> My code is:
> ...
> <wfmklist:items>
> <jsp:include page="item.jsp" flush="true"/>
> </wfmklist:items>
> ...
-
Passing params to custom tag from jsp
Hi all, I have a problem passing params back to my custom tag. The tag handler has a "getPageNumber()" method which returns a value. Initially the value is set and if a link is clicked it passes that param to the tag handler. I am trying to get this value from the tag handler to update the value on the link parameter.
Something like this:
// processed tag
<a href="mypage.jsp?page=1">Next page</a>
// clicking "Next Page"
<a href="mypage.jsp?page=2">Next page</a>
// jsp
<taglib:tag param="<%=getPageNumber()%>" />
// in tag lib
private pagenumber=1;
pagenumber++;
getPageNumber(){
return pagenumber;
setPageNumber(int pagenumber){
this.pagenumber=pagenumber
}I'm not sure if this is the best way to do this or if what I am trying to do is even possible.
Any advice would be greatly appreciated.
Thanks :)Hi all, I have a problem passing params back to my custom tag. The tag handler has a "getPageNumber()" method which returns a value. Initially the value is set and if a link is clicked it passes that param to the tag handler. I am trying to get this value from the tag handler to update the value on the link parameter.
Something like this:
// processed tag
<a href="mypage.jsp?page=1">Next page</a>
// clicking "Next Page"
<a href="mypage.jsp?page=2">Next page</a>
// jsp
<taglib:tag param="<%=getPageNumber()%>" />
// in tag lib
private pagenumber=1;
pagenumber++;
getPageNumber(){
return pagenumber;
setPageNumber(int pagenumber){
this.pagenumber=pagenumber
}I'm not sure if this is the best way to do this or if what I am trying to do is even possible.
Any advice would be greatly appreciated.
Thanks :) -
Calling jsp custom tag from jsp expression
hi there,
I have a problem calling oracle(or any other) custom tag from inside a jsp expression.(i.e.)embeding <jbo:tagname...> into <%......%>.
For example:
I need to get the value of a jsp parameter, but the parameter name is dynamic (retrieved from a DataBase)
So I though it would be something link that:
<%=request.getParameter(<jbo:ShowValue datasource="ds" dataitem="ParamName" ></jbo:ShowValue>) %>
where <jbo:ShowValue is an Oracle custom tab that retrieves the value of a certain dataItem(certain field).
But it does not work.........
if any body can tell me how to overcome, or work around it, I'll be so pleased.
Regards,
Remoun AnwarHi,
You get the custom tag output into a hidden variable (say 'key') and use the request.getParameter("key")
Hope u got the answer...
Regards
ravi -
How to use value from Custom Select tag
Hi,
I have made a custom tag for html element select. It is a very basic tag with the selection of one vaule. I am able to populate the list using custom tag in JSP but i am not able to optain the value from that. Kindly see my jsp code.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Expenses Report</title>
</head>
<body>
<center>
<table summary="layout">
<tr>
<td>Month:</td>
<td>
<tt:Select name="month" from="${ExpensesDBO}"/>
</td>
</tr>
</table>
<c:if test="${fn:length(param.month) > 0}">
<table summary="layout" border="1">
<tr>
<td align="center">Year</td>
<td align="center">Month</td>
<td align="center">Shopping</td>
<td align="center">Groceries</td>
<td align="center">Fixed Expenses</td>
<td align="center">Transportation</td>
</tr>
<tt:Expenses var="exp" username="${sessionScope.user}" from="${ExpensesDBO}">
<tr>
<td>${exp.year}</td>
<td>${exp.month}</td>
<td>${exp.shopping}</td>
<td>${exp.groceries}</td>
<td>${exp.fixedExpenses}</td>
<td>${exp.transportation}</td>
</tr>
</tt:Expenses>
</table>
</c:if>
</center>
</body>
</html>
Basically based on the selected value I want to show the same page with the details including page with the default value in select list.
I have made a generic select custom tag to be used within the application.
Regards,
Rahul.If both tables come from the same data source, join the two tables in one data set rather than two as shown. If they are from different data sources, use a 'join data set'
-
Custom tag cloud webpart based on keywords from a Term Set in the Term Store .
Hi Guys
Does anyone have developed a custom Tag Cloud webpart in SharePoint 2010? I'm
looking for a custom Tag cloud based on keywords from a Term Set in the Term Store.
Unfortunately
out of the box Tag Cloud Web Part only reference the Social Tags from the User.
in my case editors have created pages and tagged a page using terms from the Term store.
What I would like to see is a web part which could display “Top Keywords”, and the output is something like this:
http://electronicdiscovery.info/what-additional-features-would-you-like-to-see-in-sharepoint-word-cloud-survey-electronic-discovery/
Thanks In advance
Tanaji ChavanHi Ramakrishnaraja ,
Thanks for sharing the links , i tried using web part in second link but that’s not working , have also gone through the code of that web part seems like it is referring to some list like
"Categories" and "Posts"
however I'm looking for a custom Tag cloud based on keywords from a Term Set in the Term Store .
Thanks -
Composing mail from email web application using jsp and custom tags
here is the send.jsp file
<%@ page language="java" %>
<%@ page errorPage="errorpage.jsp" %>
<%@ taglib uri="http://java.sun.com/products/javamail/demo/webapp"
prefix="javamail" %>
<html>
<head>
<title>JavaMail send</title>
</head>
<body bgcolor="white">
hi
<javamail:sendmail
recipients="<%= request.getParameter(\"to\") %>"
sender="<%= request.getParameter(\"from\") %>"
subject="<%= request.getParameter(\"subject\") %>">
<%= request.getParameter("text") %>
</javamail:sendmail>
<h1>Message sent successfully</h1>
</body>
</html>
Here is the java file i.e used to refer to this custom tag
package taglib;
import java.util.*;
import java.net.*;
import javax.mail.*;
import javax.mail.Authenticator;
import javax.mail.internet.*;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
* Custom tag for sending messages.
public class SendTag extends BodyTagSupport {
private String body;
private String cc;
private String host;
private String recipients;
private String sender;
private String subject;
* host attribute setter method.
public void setHost(String host) {
this.host = host;
System.out.println("Host is : " +host);
* recipient attribute setter method.
public void setRecipients(String recipients) {
this.recipients = recipients;
System.out.println("recipients is " +recipients );
* sender attribute setter method.
public void setSender(String sender) {
this.sender = sender;
System.out.println("Sender is : " +sender);
* cc attribute setter method.
public void setCc(String cc) {
this.cc = cc;
* subject attribute setter method.
public void setSubject(String subject) {
this.subject = subject;
System.out.println("subject is : " +subject);
* Method for processing the end of the tag.
public int doEndTag() throws JspException {
System.out.println(" ** In do end tag");
Properties props = System.getProperties();
try {
if (host != null)
props.put("mail.smtp.host", host);
else if (props.getProperty("mail.smtp.host") == null)
props.put("mail.smtp.host", InetAddress.getLocalHost().
getHostName());
} catch (Exception ex) {
throw new JspException(ex.getMessage());
Session session = Session.getDefaultInstance(props,null);
Message msg = new MimeMessage(session);
InternetAddress[] toAddrs = null, ccAddrs = null;
try {
if (recipients != null) {
toAddrs = InternetAddress.parse(recipients, false);
msg.setRecipients(Message.RecipientType.TO, toAddrs);
} else
throw new JspException("No recipient address specified");
if (sender != null)
msg.setFrom(new InternetAddress(sender));
else
throw new JspException("No sender address specified");
if (cc != null) {
ccAddrs = InternetAddress.parse(cc, false);
msg.setRecipients(Message.RecipientType.CC, ccAddrs);
if (subject != null)
msg.setSubject(subject);
if ((body = getBodyContent().getString()) != null)
msg.setText(body);
else
msg.setText("");
Transport.send(msg);
} catch (Exception ex) {
throw new JspException(ex.getMessage());
return(EVAL_PAGE);
all the entries in taglib.tld and web.xml are correct.
It is one of the article given at this url:
http://java.sun.com/developer/technicalArticles/javaserverpages/emailapps/First, you should not take copyrighted code and post it without a copyright.
The code you posted is copyright Sun Microsystems.
Second, why did you post it? Did you have a question?
Maybe you are looking for
-
I'll start by saying I;m not real computer smart. I need layman's terms. I've been having issues completing transactions via Safari and based on the info I've gathered it has to do with my "no longer supported" version of Safari. I get a statement
-
We have several groups making changes to roles in our portal. Is there a way to track roles changes and where can I find this information. We have several plants and portal admins at each site making changes to "shared roles". I need to track these c
-
My flash player crash when play game. Any solution? Even paly any outdoor led displays
-
Migrating data from SAP BW to Oracle
We have a requirement where the exisiting data from SAP BW needs to be migrated into Oracle. What are some of the major differences that we should keep in mind when migrating this data. Our first task is to generate the data model in Oracle. Can we u
-
2 different people using mail on the mac - can't we separate this?
can someone please help me with this? Can my wife and I each have maybe a different icon to click on to get our email on the mac? we both have mobile me accounts - but can't we have separate mail icons or does everything have to come into a common in