/*
* Licensed to csti consulting
* You may obtain a copy of the License at
*
* http://www.csticonsulting.com
* Copyright (c) 2006-Aug 24, 2010 Consultation CS-TI inc.
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package com.salesmanager.core.util.www.tags;
import java.io.IOException;
import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.Locale;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.SimpleTagSupport;
import javax.servlet.jsp.tagext.TagSupport;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.apache.struts2.components.Component;
import org.apache.struts2.components.URL;
import org.apache.struts2.views.jsp.URLTag;
import com.opensymphony.xwork2.util.ValueStack;
import com.salesmanager.core.constants.CatalogConstants;
import com.salesmanager.core.constants.Constants;
import com.salesmanager.core.entity.catalog.Category;
import com.salesmanager.core.entity.merchant.MerchantStore;
import com.salesmanager.core.module.model.application.CacheModule;
import com.salesmanager.core.service.ServiceFactory;
import com.salesmanager.core.service.catalog.CatalogService;
import com.salesmanager.core.util.PropertiesUtil;
import com.salesmanager.core.util.ReferenceUtil;
import com.salesmanager.core.util.SpringUtil;
import com.salesmanager.core.util.www.SessionUtil;
public class UrlTag extends URLTag {
private Logger log = Logger.getLogger(UrlTag.class);
private static org.apache.commons.configuration.Configuration config = PropertiesUtil
.getConfiguration();
/**
* Overwrites default struts 2 tag in order to add merchantId in url
* parameters if configured in the system
*/
protected void populateParams() {
super.populateParams();
HttpServletRequest req = (HttpServletRequest) pageContext.getRequest();
MerchantStore store = (MerchantStore) req.getAttribute("STORE");
URL url = (URL) component;
Map parameters = url.getParameters();
if (parameters == null) {
parameters = new LinkedHashMap();
}
if (store != null) {
// check if merchantId has to be set in the url
boolean useMerchantId = config.getBoolean("core.url.usemerchantid",
false);
if (useMerchantId) {
parameters.put("merchantId", store.getMerchantId());
}
}
if (!StringUtils.isBlank(scheme)) {
if (("https").equalsIgnoreCase(scheme)) {
scheme = (String) config.getString("core.domain.http.secure",
"https");
}
}
url.setIncludeParams(includeParams);
url.setScheme(scheme);
url.setValue(value);
url.setMethod(method);
url.setNamespace(namespace);
url.setAction(action);
url.setPortletMode(portletMode);
url.setPortletUrlType(portletUrlType);
url.setWindowState(windowState);
url.setAnchor(anchor);
if (encode != null) {
url.setEncode(Boolean.valueOf(encode).booleanValue());
}
if (includeContext != null) {
url.setIncludeContext(Boolean.valueOf(includeContext)
.booleanValue());
}
if (escapeAmp != null) {
url.setEscapeAmp(Boolean.valueOf(escapeAmp).booleanValue());
}
if (forceAddSchemeHostAndPort != null) {
url.setForceAddSchemeHostAndPort(Boolean.valueOf(
forceAddSchemeHostAndPort).booleanValue());
}
}
}