I am running Tridion 2013sp1. I have a menu component on my site that is published using a rel template. It is shared with external applications as well as being used on the pages in our Tridion site. One of the requirements is that external links open in a new window/tab. When we publish our component it creates an XML of the links in the menu then parses them out for the menu. One peice of logic is behaving differently when called through the web service than it is on the page. When building the XML we add a target for external links.
Here is an example of the XML generated:
<siteMapNode type="additional" level="3" title="Additional Link (External)" url="https://www.google.com" target="_blank" />
When it comes to the target, it finds it in the web service and correctly assigns it properly, but when it is on a page it goes to the default. Here is the code that parses the target.
target="<c:choose><c:when test="thirdItem.target"><c:out value="thirdItem.target" /></c:when><c:otherwise>_top</c:otherwise></c:choose>"
Just to make things interesting, the URL for the link is generated the same way:
href="<c:choose><c:when test="thirdItem.url"><c:out value="thirdItem.url" /></c:when><c:otherwise>#</c:otherwise></c:choose>"
The URL works correctly every time.
This is not published to different publication targets, but the one publish makes it available to both my Tridion pages as well as through the web service. Has anyone seen anything like this before? Is there a difference in the engines that parse the Odata service vs the Tridion pages?